home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / gfx / pbm / netpbm2.lha / netpbm / vms / PBMplus.hlp < prev    next >
Text File  |  1993-12-06  |  224KB  |  6,565 lines

  1. 1 HELP
  2.         See PBMplus and OVERVIEW.
  3.  
  4. 1 OVERVIEW
  5.         Enhanced portable bitmap  toolkit.  The PBMPLUS toolkit allows
  6.     conversions between image files  of different format.  By means of
  7.     using common intermediate formats, only  2  * N conversion filters
  8.     are required to support N distinct  formats,  instead  of the N**2
  9.     which would be required to convert directly between any one format
  10.     and  any  other.    The  package also includes  simple  tools  for
  11.     manipulating portable bitmaps.
  12.  
  13.         The package consists of four upwardly compatible sections:
  14.         
  15.     pbm     Supports monochrome bitmaps (1 bit per pixel).
  16.  
  17.     pgm     Supports grayscale  images.    Reads  either  PBM  or  PGM
  18.             formats and writes PGM format.
  19.  
  20.     ppm     Supports full-color images.  Reads either PBM, PGM, or PPM
  21.             formats, writes PPM format.
  22.  
  23.     pnm     Supports content-independent manipulations on any  of  the
  24.             three formats listed above, as well  as  external  formats
  25.             having  multiple  types.  Reads either PBM,  PGM,  or  PPM
  26.             formats,  and  generally writes the same type as  it  read
  27.             (whenever a PNM tool makes an exception and ``promotes'' a
  28.             file to a higher format, it informs the user).
  29.  
  30.         See PBMplus for more infomation.
  31.  
  32. 1 PBMplus
  33.         Enhanced portable bitmap  toolkit.  The PBMPLUS toolkit allows
  34.     conversions between image files  of different format.  By means of
  35.     using common intermediate formats, only  2  * N conversion filters
  36.     are required to support N distinct  formats,  instead  of the N**2
  37.     which would be required to convert directly between any one format
  38.     and  any  other.    The  package also includes  simple  tools  for
  39.     manipulating portable bitmaps.
  40.  
  41.         The package consists of four upwardly compatible sections:
  42.         
  43.     pbm     Supports monochrome bitmaps (1 bit per pixel).
  44.  
  45.     pgm     Supports grayscale  images.    Reads  either  PBM  or  PGM
  46.             formats and writes PGM format.
  47.  
  48.     ppm     Supports full-color images.  Reads either PBM, PGM, or PPM
  49.             formats, writes PPM format.
  50.  
  51.     pnm     Supports content-independent manipulations on any  of  the
  52.             three formats listed above, as well  as  external  formats
  53.             having  multiple  types.  Reads either PBM,  PGM,  or  PPM
  54.             formats,  and  generally writes the same type as  it  read
  55.             (whenever a PNM tool makes an exception and ``promotes'' a
  56.             file to a higher format, it informs the user).
  57.  
  58. 2 Description_of_Contents
  59.         A brief,  one-line  description  of  each  of  the  individual
  60.     programs in the PBMplus package.  They are sorted by general type.
  61.  
  62. 3 pbm
  63.  
  64.     atktopbm    convert Andrew Toolkit raster object to portable bitmap
  65.     brushtopbm  convert Xerox doodle brushes to portable bitmap
  66.     cmuwmtopbm  convert CMU window manager format to portable bitmap
  67.     g3topbm     convert Group 3 FAX to portable bitmap
  68.     icontopbm   convert Sun icon to portable bitmap
  69.     gemtopbm    convert GEM .img format to portable bitmap
  70.     macptopbm   convert MacPaint to portable bitmap
  71.     mgrtopbm    convert MGR format to portable bitmap
  72.     pktopbm     convert packed (PK) format font into portable bitmap(s)
  73.     pbmmerge    merge wrapper routine
  74.     pbmto10x    convert portable bitmap to Gemini 10x printer graphics
  75.     pbmto4425   convert portable bitmap to AT&T 4425 terminal
  76.     pbmtoascii  convert portable bitmap to ASCII graphic form
  77.     pbmtoatk    convert portable bitmap to Andrew Toolkit raster object
  78.     pbmtobbnbg  convert portable bitmap to BBN BitGraph graphics
  79.     pbmtocmuwm  convert portable bitmap to CMU window manager format
  80.     pbmtoepson  convert portable bitmap to Epson printer graphics
  81.     pbmtog3     convert portable bitmap to Group 3 FAX
  82.     pbmtogem    convert portable bitmap into GEM .img file
  83.     pbmtogo     convert portable bitmap to GraphOn graphics
  84.     pbmtoicon   convert portable bitmap to Sun icon
  85.     pbmtolj     convert portable bitmap to HP LaserJet graphics
  86.     pbmtoln03   convert portable bitmap to DEC LN03+ Laserprinter
  87.     pbmtolps    convert portable bitmap to PostScript
  88.     pbmtomacp   convert portable bitmap to MacPaint
  89.     pbmtomgr    convert portable bitmap to MGR format
  90.     pbmtopgm    convert portable bitmap to portable graymap by ave. areas
  91.     pbmtopi3    convert portable bitmap to Atari Degas .pi3
  92.     pbmtopk     convert portable bitmap into a packed (PK) format font
  93.     pbmtoplot   convert portable bitmap into Unix plot(5) file
  94.     pbmtoptx    convert portable bitmap to Printronix graphics
  95.     pbmtoxbm    convert portable bitmap to X11 bitmap
  96.     pbmtox10bm  convert portable bitmap to X10 bitmap
  97.     pbmtoybm    convert portable bitmap into Bennet Yee "face" file
  98.     pbmtozinc   convert portable bitmap to Zinc Interface Library icon
  99.     pbmtoepsi   convert portable bitmap into an encapsulated PostScript
  100.     pi3topbm    convert Atari Degas .pi3 to portable bitmap
  101.     xbmtopbm    convert X10 or X11 bitmap to portable bitmap
  102.     ybmtopbm    convert Bennet Yee "face" file into portable bitmap
  103.  
  104.     pbmclean    flip isolated pixels in portable bitmap
  105.     pbmlife     apply Conway's rules of Life to a portable bitmap
  106.     pbmmake     create a blank bitmap of a specified size and color
  107.     pbmmask     create a mask bitmap from a regular bitmap
  108.     pbmreduce   reduce a portable bitmap N times, using Floyd-Steinberg
  109.     pbmspcale   enlarge a portable bitmap with edge smoothing
  110.     pbmtext     render text into a bitmap
  111.     pbmupc      create a Universal Product Code bitmap
  112.  
  113. 3 pgm
  114.     fitstopgm   convert FITS format to portable graymap
  115.     fstopgm     convert Usenix FaceSaver format to portable graymap
  116.     hipstopgm   convert HIPS format to portable graymap
  117.     lispmtopgm  convert a Lisp Machine bitmap file into pgm format
  118.     bioradtopgm convert a Biorad confocal file into a portable graymap
  119.     psidtopgm   convert PostScript "image" data to portable graymap
  120.     rawtopgm    convert raw grayscale bytes to portable graymap
  121.     spottopgm   convert SPOT satellite images to Portable Greymap format
  122.     pgmtofits   convert portable graymap to FITS format
  123.     pgmtofs     convert portable graymap to Usenix FaceSaver format
  124.     pgmtolispm  convert a portable graymap into Lisp Machine format
  125.     pgmtopbm    convert portable graymap to portable bitmap
  126.  
  127.     pgmbentley  Bentleyize a portable graymap
  128.     pgmcrater   create cratered terrain by fractal forgery
  129.     pgmedge     edge-detect a portable graymap
  130.     pgmenhance  edge-enhance a portable graymap
  131.     pgmhist     print a histogram of the values in a portable graymap
  132.     pgmmerge    merge wrapper routine
  133.     pgmnoise    create a graymap made up of white noise
  134.     pgmnorm     normalize contrast in a portable graymap
  135.     pgmoil      turn a portable graymap into an oil painting
  136.     pgmramp     generate a grayscale ramp
  137.     pgmtexture  calculate textural features on a portable graymap
  138.  
  139. 3 ppm
  140.     bmptoppm    convert BMP file to portable pixmap
  141.     gouldtoppm  convert Gould scanner file to portable pixmap
  142.     ilbmtoppm   convert IFF ILBM to portable pixmap
  143.     imgtoppm    convert Img-whatnot to portable pixmap
  144.     mtvtoppm    convert MTV ray-tracer output to portable pixmap
  145.     pcxtoppm    convert PC Paintbrush format to portable pixmap
  146.     pgmtoppm    colorize a portable graymap into a portable pixmap
  147.     pi1toppm    convert Atari Degas .pi1 to portable pixmap
  148.     picttoppm   convert Macintosh PICT to portable pixmap
  149.     pjtoppm     convert HP PaintJet file to portable pixmap
  150.     ppmtoacad   convert portable pixmap to AutoCAD database or slide
  151.     ppmtobmp    convert portable pixmap to BMP file
  152.     ppmtogif    convert portable pixmap to GIF
  153.     ppmtoicr    convert portable pixmap to NCSA ICR graphics
  154.     ppmtoilbm   convert portable pixmap to IFF ILBM
  155.     ppmtomitsu  convert a portable pixmap to a Mitsubishi S340-10 file
  156.     ppmtomap    extract all colors from a portable pixmap
  157.     ppmtopcx    convert portable pixmap to PC Paintbrush format
  158.     ppmtopgm    convert portable pixmap to portable graymap
  159.     ppmtopi1    convert portable pixmap to Atari Degas .pi1
  160.     ppmtopict   convert portable pixmap to Macintosh PICT
  161.     ppmtopj     convert portable pixmap to HP PaintJet file
  162.     ppmtopjxl   convert portable pixmap to HP PaintJet XL PCL file
  163.     ppmtopuzz   convert portable pixmap to X11 "puzzle" file
  164.     ppmtorgb3   separate a portable pixmap to three portable graymaps
  165.     ppmtosixel  convert portable pixmap to DEC sixel format
  166.     ppmtotga    convert portable pixmap to TrueVision Targa file
  167.     ppmtouil    convert portable pixmap to Motif UIL icon file
  168.     ppmtoxpm    convert portable pixmap to XPM format
  169.     ppmtoyuv    convert portable pixmap to Abekas YUV format
  170.     qrttoppm    convert QRT ray-tracer output to portable pixmap
  171.     rawtoppm    convert raw RGB bytes to portable pixmap
  172.     rgb3toppm   combine three portable graymaps to one portable pixmap
  173.     sldtoppm    convert an AutoCAD slide file into a portable pixmap
  174.     spctoppm    convert Atari compressed Spectrum to portable pixmap
  175.     sputoppm    convert Atari uncompressed Spectrum to portable pixmap
  176.     tgatoppm    convert TrueVision Targa file to portable pixmap
  177.     ximtoppm    convert Xim to portable pixmap
  178.     xpmtoppm    convert XPM format to portable pixmap
  179.     yuvtoppm    convert Abekas YUV format to portable pixmap
  180.  
  181.     ppm3d       convert 2 portable pixmap to a red/blue 3d glasses pixmap
  182.     ppmbrighten change images Saturation and Value from an HSV map
  183.     ppmchange   change pixels of one color to another in a portable pixmap
  184.     ppmdim      dim a portable pixmap down to total blackness
  185.     ppmdist     simple grayscale for machine generated, color images
  186.     ppmdither   ordered dither for color images
  187.     ppmflash    brighten a picture up to complete white-out
  188.     ppmforge    fractal forgeries of clouds, planets, and starry skies
  189.     ppmhist     print a histogram of a portable pixmap
  190.     ppmmake     create a pixmap of a specified size and color
  191.     ppmmix      blend together two portable pixmaps
  192.     ppmntsc     make a portable pixmap look like taken from an American TV
  193.     ppmpat      create a pretty pixmap
  194.     ppmquant    quantize colors down to a specified number
  195.     ppmqvga     8 plane quantization
  196.     ppmrelief   run a Laplacian Relief filter on a portable pixmap
  197.     ppmshift    shift lines of a portable pixmap left or right by a
  198.                 random amount
  199.     ppmspread   displace a portable pixmap's pixels by a random amount
  200.  
  201. 3 pnm
  202.     pnmtoddif   convert portable anymap to DDIF format
  203.     pnmtops     convert portable anymap to PostScript
  204.     pnmtorast   convert portable anymap to Sun raster file
  205.     pnmtotiff   convert portable anymap to TIFF file
  206.     pnmtoxwd    convert portable anymap to X11 window dump
  207.     rasttopnm   convert Sun raster file to portable anymap
  208.     tifftopnm   convert TIFF file to portable anymap
  209.     xwdtopnm    convert X10 or X11 window dump to portable anymap
  210.     pnmtosir    convert a portable anymap into a Solitaire format
  211.     sirtopnm    convert a Solitaire file into a portable anymap
  212.     zeisstopnm  convert a Zeiss confocal file into a portable anymap
  213.  
  214.     pnmarith    perform arithmetic on two portable anymaps
  215.     pnmcat      concatenate portable anymaps
  216.     pnmcomp     composite two portable anymap files together
  217.     pnmconvol   general MxN convolution on a portable anymap
  218.     pnmcrop     crop all like-colored borders off a portable anymap
  219.     pnmcut      select a rectangular region from a portable anymap
  220.     pnmdepth    change the maxval in a portable anymap
  221.     pnmenlarge  enlarge a portable anymap N times
  222.     pnmfile     describe a portable anymap
  223.     pnmflip     perform one or more flip operations on a portable anymap
  224.     pnmgamma    perform gamma correction on a portable anymap
  225.     pnmhistmap  draw a histogram for a PGM or PPM file
  226.     pnminvert   invert a portable anymap
  227.     pnmnlfilt   non-linear filters: smooth, alpha trim mean,
  228.                 optimal estimation smoothing, edge enhancement
  229.     pnmnoraw    force a portable anymap into ASCII format
  230.     pnmpad      add borders to portable anymap
  231.     pnmpaste    paste a rectangle into a portable anymap
  232.     pnmrotate   rotate a portable anymap
  233.     pnmscale    scale a portable anymap
  234.     pnmshear    shear a portable anymap
  235.     pnmtile     replicate a portable anymap into a specified size
  236.  
  237. 2 See_Also
  238.         There are a number of related image-manipulation tools:
  239.  
  240.     IM Raster Toolkit
  241.         A portable and efficient format toolkit.   The format supports
  242.     pixels  of  arbitrary  channels,  components, and bit  precisions,
  243.     while  allowing  compression  and machine byte-order independence.
  244.     Support for  image  manipulation,  digital  halftoning, and format
  245.     conversion.  Previously  distributed on tape c/o the University of
  246.     Waterloo (an ftp version is to appear later).  Author:  Alan Paeth
  247.     (awpaeth@watcgl.uwaterloo.ca).
  248.  
  249.     Utah RLE Toolkit
  250.         Conversion  and  manipulation  package,  similar  to  PBMPLUS.
  251.     Available  via  ftp  as  cs.utah.edu:   pub/toolkit-2.0.tar.Z  and
  252.     ucsd.edu:  graphics/utah-raster-toolkit.tar.Z.
  253.  
  254.     Fuzzy Pixmap Manipulation
  255.         Conversion  and  manipulation  package,  similar  to  PBMPLUS.
  256.     Version     1.0    available    via    ftp    as    nl.cs.cmu.edu:
  257.     /usr/mlm/ftp/fbm.tar.Z,  uunet.uu.net:        pub/fbm.tar.Z,   and
  258.     ucsd.edu:    graphics/fbm.tar.Z.       Author:    Michael  Mauldin
  259.     (mlm@nl.cs.cmu.edu).
  260.  
  261.     Img Software Set
  262.         Reads and  writes  its own image format, displaying results on
  263.     an X11 screen,  and does some image manipulations.  Version 1.3 is
  264.     available  via  ftp  as    ftp.x.org:contrib/img_1.3.tar.Z,    and
  265.     venera.isi.edu:pub/img_1.3.tar.Z, along with a large collection of
  266.     color images.  Author:  Paul Raveling (raveling@venera.isi.edu).
  267.  
  268.     Xim
  269.         Reads and writes its own image  format,  displays  on  an  X11
  270.     screen,  and  does some image manipulations.   Available  in  your
  271.     nearest  X11R4  source  tree  as it contrib/clients/xim.   A  more
  272.     recent version is available via ftp from video.mit.edu.   It  uses
  273.     X11R4 and the OSF/Motif toolkit to provide basic interactive image
  274.     manipulation  and  reads/writes GIF, xwd, xbm, tiff, rle, xim, and
  275.     other formats.  Author:  Philip R.  Thompson.
  276.  
  277.     xloadimage
  278.         Reads in images in various formats and displays them on an X11
  279.     screen.  Available  via  ftp as ftp.x.org:contrib/xloadimage*, and
  280.     in  your nearest comp.sources.x  archive.    Author:    Jim  Frost
  281.     (madd@std.com).
  282.  
  283.     TIFF Software
  284.         Nice portable library for reading and writing TIFF files, plus
  285.     a few tools for  manipulating  them  and  reading  other  formats.
  286.     Available    via    ftp    as   sgi.com:pub/graphics/*.tar.Z    or
  287.     uunet.uu.net:graphics/tiff.tar.Z. Author: Sam Leffler (sam@sgi.com).
  288.  
  289.     ALV
  290.         A  Sun-specific  image  toolkit.    Version  2.0.6  posted  to
  291.     comp.sources.sun on 11 December 1989.  Also available via email to
  292.     alv-users-request@cs.bris.ac.uk.
  293.  
  294.     popi
  295.         An  image  manipulation  language.    Version  2.1  posted  to
  296.     comp.sources.misc on 12 December 1989.
  297.  
  298.     ImageMagick
  299.         X11  package  for  display  and  interactive  manipulation  of
  300.     images.  Uses its own format (MIFF), and includes some converters.
  301.     Available via ftp as ftp.x.org:contrib/ImageMagick.tar.Z.
  302.  
  303.     Khoros
  304.         Huge  (~100  meg)  graphical  development environment based on
  305.     X11R4.    Components  include  a visual programming language, code
  306.     generators for  extending  the  visual  language  and  adding  new
  307.     application packages to  the system, an interactive user interface
  308.     editor, an interactive image display package, an extensive library
  309.     of  image  and  signal processing  routines,  and  2D/3D  plotting
  310.     packages.  Available via ftp as pprg.unm.edu:pub/khoros/*.
  311.  
  312.     JPEG package
  313.         JPEG is a a standardized compression method for full-color and
  314.     gray-scale  images  of "real-world"  scenes;    this  experimental
  315.     package includes programs to compress  gif and ppm format files to
  316.     JPEG  format  ( cjpeg(1L)), and to  decompress  them  (djpeg(1L)).
  317.     Available by ftp as uunet.uu.net:graphics/jpeg/jpegsrc.v1.tar.Z.
  318.  
  319.         libpbm(3L),  libpgm(3L),    libpnm(3L),  libppm(3L),  pbm(5L),
  320.     pgm(5L), pnm(5L), ppm(5L), rasterfile(1)
  321.  
  322. 2 Author
  323.         Distribution of 1 December 1991.   Copyright 1989, 1991 by Jef
  324.     Poskanzer.
  325.  
  326.         Feedback and questions are welcome.  Please send them to:
  327.  
  328.                              jef@well.sf.ca.us
  329.                               apple!well!jef
  330.  
  331.         When  sending  bug  reports,  always  include  the output from
  332.     running  any  pbmplus  program  with  the -version flag, including
  333.     descriptions of  the  type  of system you are on, the compiler you
  334.     use, and whether you are using Makefiles or Imakefiles.
  335.  
  336.         When  suggesting  new  formats  or  features,  please  include
  337.     whatever documentation you have,  and  a  uuencoded  sample.   The
  338.     response time will depend upon  my  schedule and the complexity of
  339.     the task;  if you need  it right away, or it is a complicated job,
  340.     you might consider paying me.
  341.  
  342.         The  Usenet  newsgroup  alt.graphics.pixutils  is a forum  for
  343.     discussion  of  image  conversion  and editing packages.   Posting
  344.     queries  there  may be better than mailing them to  me,  since  it
  345.     allows other people to help provide answers.
  346.  
  347.         Permission  to use, copy, modify, and distribute this software
  348.     and its  documentation  for  any purpose and without fee is hereby
  349.     granted, provided that  the  above  copyright notice appear in all
  350.     copies and that both  that  copyright  notice  and this permission
  351.     notice  appear  in supporting documentation.    This  software  is
  352.     provided "as is" without express or  implied  warranty.  Thus, you
  353.     may do what you want with this  software.    Build  it  into  your
  354.     package, steal code from it, whatever.  Just be sure to let people
  355.     know where it came from.
  356.  
  357. 1 atktopbm
  358.      atktopbm  -  convert  Andrew  Toolkit  raster  object to portable
  359.      bitmap
  360.  
  361. 2 Synopsis
  362.      atktopbm [atkfile]
  363.  
  364. 2 Description
  365.      Reads an Andrew Toolkit raster object as input.  Produces  a
  366.      portable bitmap as output.
  367.  
  368. 2 See_Also
  369.      pbmtoatk, pbm
  370.  
  371. 2 Author
  372.      Copyright (C) 1991 by Bill Janssen.
  373.  
  374. 1 brushtopbm
  375.      brushtopbm - convert a doodle brush  file  into  a  portable
  376.      bitmap
  377.  
  378. 2 Synopsis
  379.      brushtopbm [brushfile]
  380.  
  381. 2 Description
  382.      Reads a Xerox doodle brush file as input.  Produces a  port-
  383.      able bitmap as output.
  384.  
  385.      Note that there is currently no pbmtobrush tool.
  386.  
  387. 2 See_Also
  388.      pbm
  389.  
  390. 2 Author
  391.      Copyright (C) 1988 by Jef Poskanzer.
  392.  
  393. 1 cmuwmtopbm
  394.      cmuwmtopbm - convert a CMU  window  manager  bitmap  into  a
  395.      portable bitmap
  396.  
  397. 2 Synopsis
  398.      cmuwmtopbm [cmuwmfile]
  399.  
  400. 2 Description
  401.      Reads a CMU window manager  bitmap  as  input.   Produces  a
  402.      portable bitmap as output.
  403.  
  404. 2 See_Also
  405.      pbmtocmuwm, pbm
  406.  
  407. 2 Author
  408.      Copyright (C) 1989 by Jef Poskanzer.
  409.  
  410. 1 g3topbm
  411.      g3topbm - convert a Group 3 fax file into a portable bitmap
  412.  
  413. 2 Synopsis
  414.      g3topbm [-kludge] [-reversebits] [-stretch] [g3file]
  415.  
  416. 2 Description
  417.      Reads a Group 3 fax file as input.  Produces a portable bit-
  418.      map as output.
  419.  
  420. 2 Options
  421.      -kludge
  422.           Tells g3topbm to ignore the  first  few  lines  of  the
  423.           file;  sometimes fax files have some junk at the begin-
  424.           ning.
  425.  
  426.      -reversebits
  427.           Tells  g3topbm  to  interpret  bits   least-significant
  428.           first,  instead  of the default most-significant first.
  429.           Apparently some fax modems do it one way and others  do
  430.           it  the  other  way.   If you get a whole bunch of "bad
  431.           code word" messages, try using this flag.
  432.  
  433.      -stretch
  434.           Tells g3topbm to stretch the image vertically by dupli-
  435.           cating each row.  This is for the low-quality transmis-
  436.           sion mode.
  437.  
  438.      All flags can be abbreviated to their shortest  unique  pre-
  439.      fix.
  440.  
  441. 2 References
  442.      The standard for Group 3 fax is defined in CCITT Recommenda-
  443.      tion T.4.
  444.  
  445. 2 Bugs
  446.      Probably.
  447.  
  448. 2 See_Also
  449.      pbmtog3, pbm
  450.  
  451. 2 Author
  452.      Copyright (C) 1989 by Paul Haeberli <paul@manray.sgi.com>.
  453.  
  454. 1 icontopbm
  455.      icontopbm - convert a Sun icon into a portable bitmap
  456.  
  457. 2 Synopsis
  458.      icontopbm [iconfile]
  459.  
  460. 2 Description
  461.      Reads a Sun icon as input.  Produces a  portable  bitmap  as
  462.      output.
  463.  
  464. 2 See_Also
  465.      pbmtoicon, pbm
  466.  
  467. 2 Author
  468.      Copyright (C) 1988 by Jef Poskanzer.
  469.  
  470. 1 gemtopbm
  471.      gemtopbm - convert a GEM .img file into a portable bitmap
  472.  
  473. 2 Synopsis
  474.      gemtopbm [-d] gemfile
  475.  
  476. 2 Description
  477.      Reads a GEM .img file as input.  Produces a portable  bitmap
  478.      as output.
  479.  
  480. 2 Options
  481.      -d   Produce output describing  the  contents  of  the  .img
  482.           file.
  483.  
  484. 2 Bugs
  485.      Does not support file containing more than one plane.  Can't
  486.      read from standard input.
  487.  
  488. 2 See_Also
  489.      pbmtogem, pbm
  490.  
  491. 2 Author
  492.      Copyright (C) 1988 Diomidis D. Spinellis (dds@cc.ic.ac.uk).
  493.  
  494. 1 macptopbm
  495.      macptopbm - convert a MacPaint file into a portable bitmap
  496.  
  497. 2 Synopsis
  498.      macptopbm [-extraskip N] [macpfile]
  499.  
  500. 2 Description
  501.      Reads a MacPaint file as input.  Produces a portable  bitmap
  502.      as output.
  503.  
  504. 2 Options
  505.      -extraskip
  506.           This flag is to get around a problem with some  methods
  507.           of  transferring  files  from the Mac world to the Unix
  508.           world.  Most of  these  methods  leave  the  Mac  files
  509.           alone, but a few of them add the "finderinfo" data onto
  510.           the front of the Unix file.  This means  an  extra  128
  511.           bytes  to skip over when reading the file.  The symptom
  512.           to watch for is  that  the  resulting  PBM  file  looks
  513.           shifted  to  one side.  If you get this, try -extraskip
  514.           128, and if that still doesn't look right  try  another
  515.           value.
  516.  
  517.      All flags can be abbreviated to their shortest  unique  pre-
  518.      fix.
  519.  
  520. 2 See_Also
  521.      picttoppm, pbmtomacp, pbm
  522.  
  523. 2 Author
  524.      Copyright (C) 1988 by Jef Poskanzer.   The  MacPaint-reading
  525.      code   is   copyright   (c)  1987  by  Patrick  J.  Naughton
  526.      (naughton@wind.sun.com).
  527.  
  528. 1 mgrtopbm
  529.      mgrtopbm - convert a MGR bitmap into a portable bitmap
  530.  
  531. 2 Synopsis
  532.      mgrtopbm [mgrfile]
  533.  
  534. 2 Description
  535.      Reads a MGR bitmap as input.  Produces a portable bitmap  as
  536.      output.
  537.  
  538. 2 See_Also
  539.      pbmtomgr, pbm
  540.  
  541. 2 Author
  542.      Copyright (C) 1989 by Jef Poskanzer.
  543.  
  544. 1 pbmclean
  545.      pbmclean - flip isolated pixels in portable bitmap
  546.  
  547. 2 Synopsis
  548.      pbmclean [-connect] [pbmfile]
  549.  
  550. 2 Description
  551.      Reads a portable bitmap as input. Outputs a portable  bitmap
  552.      with  every  pixel  which  has  less  than connect identical
  553.      neighbours inverted.  Pbmclean  can  be  used  to  clean  up
  554.      "snow" on bitmap images.
  555.  
  556. 2 See_Also
  557.      pbm
  558.  
  559. 2 Author
  560.      Copyright (C) 1990 by Angus Duggan Copyright (C) 1989 by Jef
  561.      Poskanzer.
  562.  
  563.      Permission  to  use,  copy,  modify,  and  distribute   this
  564.      software  and  its documentation for any purpose and without
  565.      fee is hereby granted, provided  that  the  above  copyright
  566.      notice  appear  in  all  copies and that both that copyright
  567.      notice and this permission notice appear in supporting docu-
  568.      mentation.   This  software  is  provided  "as  is"  without
  569.      express or implied warranty.
  570.  
  571. 1 pbmlife
  572.      pbmlife - apply Conway's rules of Life to a portable bitmap
  573.  
  574. 2 Synopsis
  575.      pbmlife [pbmfile]
  576.  
  577. 2 Description
  578.      Reads a portable bitmap as input.  Applies the rules of Life
  579.      to  it for one generation, and produces a portable bitmap as
  580.      output.
  581.  
  582.      A white pixel in the image is interpreted as a live beastie,
  583.      and a black pixel as an empty space.
  584.  
  585. 2 See_Also
  586.      pbm
  587.  
  588. 2 Author
  589.      Copyright (C) 1988, 1991 by Jef Poskanzer.
  590.  
  591. 1 pbmmake
  592.      pbmmake - create a blank bitmap of a specified size
  593.  
  594. 2 Synopsis
  595.      pbmmake [-white|-black|-gray ] width height
  596.  
  597. 2 Description
  598.      Produces a  portable  bitmap  of  the  specified  width  and
  599.      height.  The color defaults to white.
  600.  
  601. 2 Options
  602.      In addition to the usual -white  and  -black,  this  program
  603.      implements -gray.  This gives a simple 50% gray pattern with
  604.      1's and 0's alternating.
  605.  
  606.      All flags can be abbreviated to their shortest  unique  pre-
  607.      fix.
  608.  
  609. 2 See_Also
  610.      pbm, ppmmake
  611.  
  612. 2 Author
  613.      Copyright (C) 1989 by Jef Poskanzer.
  614.  
  615. 1 pbmmask
  616.      pbmmask - create a mask bitmap from a regular bitmap
  617.  
  618. 2 Synopsis
  619.      pbmmask [-expand] [pbmfile]
  620.  
  621. 2 Description
  622.      Reads a portable bitmap as input.  Creates  a  corresponding
  623.      mask bitmap and writes it out.
  624.  
  625.      The color to be interpreted as  "background"  is  determined
  626.      automatically.  Regardless of which color is background, the
  627.      mask will be white where the background is and  black  where
  628.      the figure is.
  629.  
  630.      This lets you do a masked paste like this, for objects  with
  631.      a black background:
  632.          pbmmask obj > objmask
  633.          pnmpaste < dest -and objmask <x> <y> | pnmpaste -or obj <x> <y>
  634.      For objects with a white background, you can  either  invert
  635.      them or add a step:
  636.          pbmmask obj > objmask
  637.          pnminvert objmask | pnmpaste -and obj 0 0 > blackback
  638.          pnmpaste < dest -and objmask <x> <y> | pnmpaste -or blackback <x> <y>
  639.      Note that this three-step version  works  for  objects  with
  640.      black  backgrounds  too,  if you don't care about the wasted
  641.      time.
  642.  
  643.      You can also use masks with graymaps and pixmaps, using  the
  644.      pnmarith tool.  For instance:
  645.          ppmtopgm obj.ppm | pgmtopbm -threshold | pbmmask > objmask.pbm
  646.          pnmarith -multiply dest.ppm objmask.pbm > t1.ppm
  647.          pnminvert objmask.pbm | pnmarith -multiply obj.ppm - > t2.ppm
  648.          pnmarith -add t1.ppm t2.ppm
  649.      An interesting variation on this is to pipe the mask through
  650.      the  pnmsmooth script before using it.  This makes the boun-
  651.      dary between the two images less sharp.
  652.  
  653.      -expand
  654.           Expands the mask by one pixel out from the image.  This
  655.           is useful if you want a little white border around your
  656.           image.  (A better solution might be to turn the pbmlife
  657.           tool into a general cellular automaton tool...)
  658.  
  659. 2 See_Also
  660.      pnmpaste, pnminvert, pbm, pnmarith, pnmsmooth
  661.  
  662. 2 Author
  663.      Copyright (C) 1988 by Jef Poskanzer.
  664.  
  665. 1 pbmpscale
  666.      pbmpscale - enlarge a portable bitmap with edge smoothing
  667.  
  668. 2 Synopsis
  669.      pbmpscale N [ pbmfile ]
  670.  
  671. 2 Description
  672.      Reads a portable bitmap as input,  and  outputs  a  portable
  673.      bitmap enlarged N times. Enlargement is done by pixel repli-
  674.      cation, with some additional smoothing of corners and edges.
  675.  
  676. 2 See_Also
  677.      pnmenlarge, ppmscale, pbm
  678.  
  679. 2 Author
  680.      Copyright (C) 1990 by Angus Duggan Copyright (C) 1989 by Jef
  681.      Poskanzer.
  682.  
  683.      Permission  to  use,  copy,  modify,  and  distribute   this
  684.      software  and  its documentation for any purpose and without
  685.      fee is hereby granted, provided  that  the  above  copyright
  686.      notice  appear  in  all  copies and that both that copyright
  687.      notice and this permission notice appear in supporting docu-
  688.      mentation.   This  software  is  provided  "as  is"  without
  689.      express or implied warranty.
  690.  
  691. 2 Notes
  692.      pbmpscale works best for  enlargements  of  2.  Enlargements
  693.      greater  than  2 should be done by as many enlargements of 2
  694.      as possible, followed by an  enlargement  by  the  remaining
  695.      factor.
  696.  
  697. 1 pbmreduce
  698.      pbmreduce - read a portable bitmap and reduce it N times
  699.  
  700. 2 Synopsis
  701.      pbmreduce [-floyd|-fs|-threshold ] [-value val] N [pbmfile]
  702.  
  703. 2 Description
  704.      Reads a portable bitmap as input.  Reduces it by a factor of
  705.      N, and produces a portable bitmap as output.
  706.  
  707.      pbmreduce duplicates a lot of the functionality of pgmtopbm;
  708.      you  could  do  something  like  pnmscale  |  pgmtopbm,  but
  709.      pbmreduce is a lot faster.
  710.  
  711.      pbmreduce can be used to "re-halftone" an image.  Let's  say
  712.      you  have  a  scanner  that  only  produces black&white, not
  713.      grayscale, and it does a terrible job  of  halftoning  (most
  714.      b&w  scanners  fit  this  description).   One way to fix the
  715.      halftoning is to scan at the  highest  possible  resolution,
  716.      say  300  dpi,  and  then  reduce by a factor of three or so
  717.      using pbmreduce.  You can even correct the brightness of  an
  718.      image, by using the -value flag.
  719.  
  720. 2 Options
  721.      By default, the halftoning after the reduction is  done  via
  722.      boustrophedonic  Floyd-Steinberg  error  diffusion; however,
  723.      the -threshold flag can be used to specify simple threshold-
  724.      ing.  This gives better results when reducing line drawings.
  725.  
  726.      The -value flag alters the thresholding value for all quant-
  727.      izations.   It  should  be  a  real  number between 0 and 1.
  728.      Above 0.5 means darker images; below 0.5 means lighter.
  729.  
  730.      All flags can be abbreviated to their shortest  unique  pre-
  731.      fix.
  732.  
  733. 2 See_Also
  734.      pnmenlarge, pnmscale, pgmtopbm, pbm
  735.  
  736. 2 Author
  737.      Copyright (C) 1988 by Jef Poskanzer.
  738.  
  739. 1 pbmtext
  740.      pbmtext - render text into a bitmap
  741.  
  742. 2 Synopsis
  743.      pbmtext [-font fontfile] [text]
  744.  
  745. 2 Description
  746.      Takes the specified text, either a single line from the com-
  747.      mand line or multiple lines from standard input, and renders
  748.      it into a bitmap.
  749.  
  750. 2 Options
  751.      By default, pbmtext uses a  built-in  font.   You  can  also
  752.      specify  your own font with the -font flag.  The fontfile is
  753.      a pbm file, created in a very specific way.  In your  window
  754.      system  of choice, display the following text in the desired
  755.      (fixed-width) font:
  756.  
  757.          M ",/^_[`jpqy| M
  758.  
  759.          /  !"#$%&'()*+ /
  760.          < ,-./01234567 <
  761.          > 89:;<=>?@ABC >
  762.          @ DEFGHIJKLMNO @
  763.          _ PQRSTUVWXYZ[ _
  764.          { \]^_`abcdefg {
  765.          } hijklmnopqrs }
  766.          ~ tuvwxyz{|}~  ~
  767.  
  768.          M ",/^_[`jpqy| M
  769.  
  770.      Do a screen grab or window dump  of  that  text,  using  for
  771.      instance  xwd,  xgrabsc,  or screendump.  Convert the result
  772.      into a pbm file.  If necessary, use pnmcut to remove  every-
  773.      thing  except  the text.  Finally, run it through pnmcrop to
  774.      make sure the edges are right up against the text.   pbmtext
  775.      can figure out the sizes and spacings from that.
  776.  
  777. 2 See_Also
  778.      pbm, pnmcut, pnmcrop
  779.  
  780. 2 Author
  781.      Copyright (C) 1991 by Jef Poskanzer.
  782.  
  783. 1 pbmto4425
  784.      pbmto4425 - Display PBM images on an AT&T 4425 terminal
  785.  
  786. 2 Synopsis
  787.      pbmto4425 [pbmfile]
  788.  
  789. 2 Description
  790.      Pbmto4425 displays PBM format images on an AT&T  4425  ASCII
  791.      terminal  using  that  terminal's  mosaic graphics character
  792.      set.  The program should also  work  with  other  VT100-like
  793.      terminals with mosaic graphics character sets such as the C.
  794.      Itoh CIT-101, but it has not yet been  tested  on  terminals
  795.      other than the 4425.
  796.  
  797.      Pbmto4425 puts the terminal into 132 column mode to  achieve
  798.      the  maximum  resolution  of the terminal.  In this mode the
  799.      terminal has a resolution of 264 columns by  69  rows.   The
  800.      pixels  have  an  aspect  ratio of 1:2.6, therefore an image
  801.      should be processed before being displayed in a manner  such
  802.      as this:
  803.  
  804.           % pnmscale -xscale 2.6 pnmfile \
  805.                | pnmscale -xysize 264 69 \
  806.                | ppmtopgm \
  807.                | pgmtopbm \
  808.                | pbmto4425
  809.  
  810. 2 Author
  811.      Copyright (C) 1993 by Robert Perlberg
  812.  
  813. 1 pbmto10x
  814.      pbmto10x - convert a portable bitmap into Gemini 10X printer
  815.      graphics
  816.  
  817. 2 Synopsis
  818.      pbmto10x [-h] [pbmfile]
  819.  
  820. 2 Description
  821.      Reads a portable bitmap as input.  Produces a file of Gemini
  822.      10X printer graphics as output.  The 10x's printer codes are
  823.      alleged to be similar to the Epson codes.
  824.  
  825.      Note that there is no 10xtopbm tool - this transformation is
  826.      one way.
  827.  
  828. 2 Options
  829.      The resolution is normally 60H by 72V.  If the  -h  flag  is
  830.      specified, resolution is 120H by 144V.  You may find it use-
  831.      ful to rotate landscape images before printing.
  832.  
  833. 2 See_Also
  834.      pbm
  835.  
  836. 2 Author
  837.      Copyright (C) 1990 by Ken Yap
  838.  
  839. 1 pbmtoascii
  840.      pbmtoascii - convert a portable bitmap into ASCII graphics
  841.  
  842. 2 Synopsis
  843.      pbmtoascii [-1x2|-2x4] [pbmfile]
  844.  
  845. 2 Description
  846.      Reads a portable bitmap as input.  Produces a somewhat crude
  847.      ASCII graphic as output.
  848.  
  849.      Note that there is no asciitopbm tool - this  transformation
  850.      is one-way.
  851.  
  852. 2 Options
  853.      The -1x2 and -2x4 flags give you two alternate ways for  the
  854.      bits  to  get  mapped to characters.  With 1x2, the default,
  855.      each character represents a group of 1 bit across by 2  bits
  856.      down.  With -2x4, each character represents 2 bits across by
  857.      4 bits down.  With the 1x2 mode you can see  the  individual
  858.      bits,  so it's useful for previewing small bitmaps on a non-
  859.      graphics terminal.  The 2x4 mode  lets  you  display  larger
  860.      bitmaps  on  a  standard  80-column display, but it obscures
  861.      bit-level details.  2x4 mode is  also  good  for  displaying
  862.      graymaps  -  "pnmscale  -width  158  |  pgmnorm  |  pgmtopbm
  863.      -thresh" should give good results.
  864.  
  865. 2 See_Also
  866.      pbm
  867.  
  868. 2 Author
  869.      Copyright (C) 1988, 1992 by Jef Poskanzer.
  870.  
  871. 1 pbmtoatk
  872.      pbmtoatk - convert portable bitmap to Andrew Toolkit  raster
  873.      object
  874.  
  875. 2 Synopsis
  876.      pbmtoatk [pbmfile]
  877.  
  878. 2 Description
  879.      Reads a portable bitmap as input.  Produces a Andrew Toolkit
  880.      raster object as output.
  881.  
  882. 2 See_Also
  883.      atktopbm, pbm
  884.  
  885. 2 Author
  886.      Copyright (C) 1991 by Bill Janssen.
  887.  
  888. 1 pbmtobg
  889.      pbmtobg - convert a portable bitmap into BitGraph graphics
  890.  
  891. 2 Synopsis
  892.      pbmtobg [rasterop] [x y] < pbmfile
  893.  
  894. 2 Description
  895.      Reads a portable bitmap as  input.   Produces  BBN  BitGraph
  896.      terminal Display Pixel Data (DPD) sequence as output.
  897.  
  898.      The rasterop can be specified on the command line.  If  this
  899.      is  omitted,  3 (replace) will be used.  A position in (x,y)
  900.      coordinates can also be specified.  If both are  given,  the
  901.      rasterop  comes  first.  The portable bitmap is always taken
  902.      from the standard input.
  903.  
  904.      Note that there is no bgtopbm tool.
  905.  
  906. 2 See_Also
  907.      pbm
  908.  
  909. 2 Author
  910.      Copyright 1989 by Mike Parker.
  911.  
  912. 1 pbmtocmuwm
  913.      pbmtocmuwm - convert a portable bitmap  into  a  CMU  window
  914.      manager bitmap
  915.  
  916. 2 Synopsis
  917.      pbmtocmuwm [pbmfile]
  918.  
  919. 2 Description
  920.      Reads a portable bitmap as input.   Produces  a  CMU  window
  921.      manager bitmap as output.
  922.  
  923. 2 See_Also
  924.      cmuwmtopbm, pbm
  925.  
  926. 2 Author
  927.      Copyright (C) 1989 by Jef Poskanzer.
  928.  
  929. 1 pbmtoepsi
  930.      pbmtoepsi - convert a portable bitmap into  an  encapsulated
  931.      PostScript style preview bitmap
  932.  
  933. 2 Synopsis
  934.      pbmtoepsi [-bbonly] [pbmfile]
  935.  
  936. 2 Description
  937.      Reads a portable bitmap as input.  Produce  an  encapsulated
  938.      Postscript style bitmap as output. The output is not a stand
  939.      alone postscript file, it is only a  preview  bitmap,  which
  940.      can  be  included  in an encapsulated PostScript file.  Note
  941.      that there is no epsitopbm tool - this transformation is one
  942.      way.
  943.  
  944.      This utility is a part of the pstoepsi tool by Doug  Crabill
  945.      (dgc@cs.purdue.edu).
  946.  
  947. 2 Options
  948.      -bbonly
  949.           Only create a boundary box,  don't  fill  it  with  the
  950.           image.
  951.  
  952. 2 See_Also
  953.      pbm, pnmtops, psidtopgm
  954.  
  955. 2 Author
  956.      Copyright (C) 1988 Jef Poskanzer, modified by  Doug  Crabill
  957.      1992
  958.  
  959. 1 pbmtoepson
  960.      pbmtoepson - convert a portable bitmap  into  Epson  printer
  961.      graphics
  962.  
  963. 2 Synopsis
  964.      pbmtoepson [pbmfile]
  965.  
  966. 2 Description
  967.      Reads a portable bitmap as input.  Produces a file of  Epson
  968.      printer graphics as output.
  969.  
  970.      Note that there is no epsontopbm tool - this  transformation
  971.      is one way.
  972.  
  973. 2 See_Also
  974.      pbm
  975.  
  976. 2 Author
  977.      Copyright      (C)      1991      by       John       Tiller
  978.      (tiller@galois.msfc.nasa.gov) and Jef Poskanzer.
  979.  
  980. 1 pbmtog3
  981.      pbmtog3 - convert a portable bitmap into a Group 3 fax file
  982.  
  983. 2 Synopsis
  984.      pbmtog3 [pbmfile]
  985.  
  986. 2 Description
  987.      Reads a portable bitmap as output.  Produces a Group  3  fax
  988.      file as input.
  989.  
  990. REFERENCES
  991.      The standard for Group 3 fax is defined in CCITT Recommenda-
  992.      tion T.4.
  993.  
  994. 2 Bugs
  995.      Probably.
  996.  
  997. 2 See_Also
  998.      g3topbm, pbm
  999.  
  1000. 2 Author
  1001.      Copyright (C) 1989 by Paul Haeberli <paul@manray.sgi.com>.
  1002.  
  1003. 1 pbmtogem
  1004.      pbmtogem - convert a portable bitmap into a GEM .img file
  1005.  
  1006. 2 Synopsis
  1007.      pbmtogem [pbmfile]
  1008.  
  1009. 2 Description
  1010.      Reads a portable bitmap as input.  Produces a GEM .img  file
  1011.      as output.
  1012.  
  1013. 2 Bugs
  1014.      It does not support compression of the data.
  1015.  
  1016. 2 See_Also
  1017.      gemtopbm, pbm
  1018.  
  1019. 2 Author
  1020.      Copyright (C) 1988 by David Beckemeyer (bdt!david)  and  Jef
  1021.      Poskanzer.
  1022.  
  1023. 1 pbmtogo
  1024.      pbmtogo - convert a portable bitmap into compressed  GraphOn
  1025.      graphics
  1026.  
  1027. 2 Synopsis
  1028.      pbmtogo [pbmfile]
  1029.  
  1030. 2 Description
  1031.      Reads a portable bitmap as input.   Produces  2D  compressed
  1032.      GraphOn  graphics as output.  Be sure to set up your GraphOn
  1033.      with the following modes: 8  bits  /  no  parity;  obeys  no
  1034.      XON/XOFF;  NULs  are  accepted.   These  are all on the Comm
  1035.      menu.  Also, remember to turn off tty post processing.  Note
  1036.      that there is no gotopbm tool.
  1037.  
  1038. 2 See_Also
  1039.      pbm
  1040.  
  1041. 2 Author
  1042.      Copyright (C) 1988, 1989 by Jef Poskanzer, Michael Haberler,
  1043.      and Bo Thide'.
  1044.  
  1045. 1 pbmtoicon
  1046.      pbmtoicon - convert a portable bitmap into a Sun icon
  1047.  
  1048. 2 Synopsis
  1049.      pbmtoicon [pbmfile]
  1050.  
  1051. 2 Description
  1052.      Reads a portable bitmap as input.  Produces a  Sun  icon  as
  1053.      output.
  1054.  
  1055. 2 See_Also
  1056.      icontopbm, pbm
  1057.  
  1058. 2 Author
  1059.      Copyright (C) 1988 by Jef Poskanzer.
  1060.  
  1061. 1 pbmtolj
  1062.      pbmtolj - convert a portable bitmap into HP LaserJet format
  1063.  
  1064. 2 Synopsis
  1065.      pbmtolj [-resolution N] [pbmfile]
  1066.  
  1067. 2 Description
  1068.      Reads a portable bitmap as input.  Produces HP LaserJet data
  1069.      as output.
  1070.  
  1071.      Note that there is no ljtopbm tool.
  1072.  
  1073. 2 Options
  1074.      -resolution
  1075.           Specifies the resolution of the output device, in  dpi.
  1076.           Typical  values  are 75, 100, 150, 300.  The default is
  1077.           75.
  1078.  
  1079.      All flags can be abbreviated to their shortest  unique  pre-
  1080.      fix.
  1081.  
  1082. 2 See_Also
  1083.      pbm
  1084.  
  1085. 2 Author
  1086.      Copyright (C) 1988 by Jef Poskanzer and Michael Haberler.
  1087.  
  1088. 1 pbmtoln03
  1089.      pbmtoln03 - convert protable bitmap to DEC LN03+ Sixel  out-
  1090.      put
  1091.  
  1092. 2 Synopsis
  1093.      pbmtoln03 [-rltbf] pbmfile
  1094.  
  1095. 2 Description
  1096.      Reads a portable bitmap as  input.   Produces  a  DEC  LN03+
  1097.      Sixel output file.
  1098.  
  1099. 2 Options
  1100.      -l nn
  1101.           Use "nn" as value for left margin (default 0).
  1102.  
  1103.      -r nn
  1104.           Use "nn" as value for right margin (default 2400).
  1105.  
  1106.      -t nn
  1107.           Use "nn" as value for top margin (default 0).
  1108.  
  1109.      -b nn
  1110.           Use "nn" as value for bottom margin (default 3400).
  1111.  
  1112.      -f nn
  1113.           Use "nn" as value for form length (default 3400).
  1114.  
  1115. 2 See_Also
  1116.      pbm
  1117.  
  1118. 2 Author
  1119.      Tim Cook, 26 Feb 1992
  1120.  
  1121. 1 pbmtolps
  1122.      pbmtolps - convert portable bitmap to PostScript
  1123.  
  1124. 2 Synopsis
  1125.      pbmtolps [ -dpi n ] [ pbmfile ]
  1126.  
  1127. 2 Description
  1128.      Reads a portable bitmap as input,  and  outputs  PostScript.
  1129.      The output Postscript uses lines instead of the image opera-
  1130.      tor to generate a (device dependent) picture which  will  be
  1131.      imaged much faster.
  1132.  
  1133.      The Postscript path length is constrained to  be  less  that
  1134.      1000  points  so  that  no  limits  are overrun on the Apple
  1135.      Laserwriter and (presumably) no other printers.
  1136.  
  1137. 2 See_Also
  1138.      pgmtops, ppmtops, pbm
  1139.  
  1140. 2 Author
  1141.      George Phillips <phillips@cs.ubc.ca>
  1142.  
  1143. 1 pbmtomacp
  1144.      pbmtomacp - convert a portable bitmap into a MacPaint file
  1145.  
  1146. 2 Synopsis
  1147.      pbmtomacp  [-l  left]  [-r  right]  [-b  bottom]  [-t   top]
  1148.      [pbmfile]
  1149.  
  1150. 2 Description
  1151.      Reads a portable bitmap  as  input.   If  no  input-file  is
  1152.      given,  standard input is assumed.  Produces a MacPaint file
  1153.      as output.
  1154.  
  1155.      The generated file is only the data fork of a picture.   You
  1156.      will  need  a program such as mcvert to generate a Macbinary
  1157.      or a BinHex file that contains the necessary information  to
  1158.      identify the file as a PNTG file to MacOS.
  1159.  
  1160. 2 Options
  1161.      Left, right, bottom & top let you define a square  into  the
  1162.      pbm  file,  that  must  be  converted.  Default is the whole
  1163.      file.  If the file is too large  for  a  MacPaint-file,  the
  1164.      bitmap is cut to fit from ( left, top ).
  1165.  
  1166. 2 Bugs
  1167.      The source code contains comments in a language  other  than
  1168.      English.
  1169.  
  1170. 2 See_Also
  1171.      ppmtopict, macptopbm, pbm, mcvert
  1172.  
  1173. 2 Author
  1174.      Copyright   (C)   1988   by    Douwe    van    der    Schaaf
  1175.      (...!mcvax!uvapsy!vdschaaf).
  1176.  
  1177. 1 pbmtomgr
  1178.      pbmtomgr - convert a portable bitmap into a MGR bitmap
  1179.  
  1180. 2 Synopsis
  1181.      pbmtomgr [pbmfile]
  1182.  
  1183. 2 Description
  1184.      Reads a portable bitmap as input.  Produces a MGR bitmap  as
  1185.      output.
  1186.  
  1187. 2 See_Also
  1188.      mgrtopbm, pbm
  1189.  
  1190. 2 Author
  1191.      Copyright (C) 1989 by Jef Poskanzer.
  1192.  
  1193. 1 pbmtopi3
  1194.      pbmtopi3 - convert a portable bitmap  into  an  Atari  Degas
  1195.      .pi3 file
  1196.  
  1197. 2 Synopsis
  1198.      pbmtopi3 [pbmfile]
  1199.  
  1200. 2 Description
  1201.      Reads a portable bitmap as input.  Produces an  Atari  Degas
  1202.      .pi3 file as output.
  1203.  
  1204. 2 See_Also
  1205.      pi3topbm, pbm, ppmtopi1, pi1toppm
  1206.  
  1207. 2 Author
  1208.      Copyright (C) 1988 by David Beckemeyer (bdt!david)  and  Jef
  1209.      Poskanzer.
  1210.  
  1211. 1 pbmtoplot
  1212.      pbmtoplot - convert a portable bitmap into  a  Unix  plot
  1213.      file
  1214.  
  1215. 2 Synopsis
  1216.      pbmtoplot [pbmfile]
  1217.  
  1218. 2 Description
  1219.      Reads a portable bitmap as  input.   Produces  a  Unix  plot
  1220.      file.
  1221.  
  1222.      Note that there is no plottopbm tool -  this  transformation
  1223.      is one-way.
  1224.  
  1225. 2 See_Also
  1226.      pbm, plot
  1227.  
  1228. 2 Author
  1229.      Copyright (C) 1990 by Arthur David Olson.
  1230.  
  1231. 1 pbmtoptx
  1232.      pbmtoptx - convert a portable bitmap into Printronix printer
  1233.      graphics
  1234.  
  1235. 2 Synopsis
  1236.      pbmtoptx [pbmfile]
  1237.  
  1238. 2 Description
  1239.      Reads a portable bitmap as input.  Produces a file of  Prin-
  1240.      tronix printer graphics as output.
  1241.  
  1242.      Note that there is no ptxtopbm tool - this transformation is
  1243.      one way.
  1244.  
  1245. 2 See_Also
  1246.      pbm
  1247.  
  1248. 2 Author
  1249.      Copyright (C) 1988 by Jef Poskanzer.
  1250.  
  1251. 1 pbmtox10bm
  1252.      pbmtox10bm - convert a portable bitmap into an X10 bitmap
  1253.  
  1254. 2 Synopsis
  1255.      pbmtox10bm [pbmfile]
  1256.  
  1257. 2 Description
  1258.      Reads a portable bitmap as input.  Produces an X10 bitmap as
  1259.      output.  This older format is maintained for compatibility.
  1260.  
  1261.      Note that there is no x10bmtopbm tool, because xbmtopbm  can
  1262.      read both X11 and X10 bitmaps.
  1263.  
  1264. 2 See_Also
  1265.      pbmtoxbm, xbmtopbm, pbm
  1266.  
  1267. 2 Author
  1268.      Copyright (C) 1988 by Jef Poskanzer.
  1269.  
  1270. 1 pbmtoxbm
  1271.      pbmtoxbm - convert a portable bitmap into an X11 bitmap
  1272.  
  1273. 2 Synopsis
  1274.      pbmtoxbm [pbmfile]
  1275.  
  1276. 2 Description
  1277.      Reads a portable bitmap as input.  Produces an X11 bitmap as
  1278.      output.
  1279.  
  1280. 2 See_Also
  1281.      pbmtox10bm, xbmtopbm, pbm
  1282.  
  1283. 2 Author
  1284.      Copyright (C) 1988 by Jef Poskanzer.
  1285.  
  1286. 1 pbmtoybm
  1287.      pgmtoybm - convert a  portable  bitmap  into  a  Bennet  Yee
  1288.      "face" file
  1289.  
  1290. 2 Synopsis
  1291.      pbmtoybm [pbmfile]
  1292.  
  1293. 2 Description
  1294.      Reads a portable bitmap as input.  Produces as output a file
  1295.      acceptable  to  the  face  and  xbm  programs  by Bennet Yee
  1296.      (bsy+@cs.cmu.edu).
  1297.  
  1298. 2 See_Also
  1299.      ybmtopbm, pbm, face, face, xbm
  1300.  
  1301. 2 Author
  1302.      Copyright (C) 1991 by Jamie Zawinski and Jef Poskanzer.
  1303.  
  1304. 1 pbmtozinc
  1305.      pbmtozinc - convert a portable bitmap into a Zinc bitmap
  1306.  
  1307. 2 Synopsis
  1308.      pbmtozinc [pbmfile]
  1309.  
  1310. 2 Description
  1311.      Reads a portable bitmap as input.  Produces a bitmap in  the
  1312.      format  used by the Zinc Interface Library (ZIL) Version 1.0
  1313.      as output.
  1314.  
  1315. 2 See_Also
  1316.      pbm
  1317.  
  1318. 2 Author
  1319.      Copyright   (C)   1988    by    James    Darrell    McCauley
  1320.      (jdm5548@diamond.tamu.edu) and Jef Poskanzer.
  1321.  
  1322. 1 pbmupc
  1323.      pbmupc - create a Universal Product Code bitmap
  1324.  
  1325. 2 Synopsis
  1326.      pbmupc [-s1|-s2] type manufac product
  1327.  
  1328. 2 Description
  1329.      Generates a Universal Product Code symbol.  The three  argu-
  1330.      ments  are:  a one digit product type, a five digit manufac-
  1331.      turer code, and a five digit product code.  For example,  "0
  1332.      72890 00011" is the code for Heineken.
  1333.  
  1334.      As presently configured, pbmupc produces a bitmap  230  bits
  1335.      wide and 175 bits high.  The size can be altered by changing
  1336.      the defines at the beginning of the program, or  by  running
  1337.      the output through pnmenlarge or pnmscale.
  1338.  
  1339. 2 Options
  1340.      The -s1 and -s2 flags select the style of UPC  to  generate.
  1341.      The default, -s1, looks more or less like this:
  1342.       ||||||||||||||||
  1343.       ||||||||||||||||
  1344.       ||||||||||||||||
  1345.       ||||||||||||||||
  1346.      0||12345||67890||5
  1347.      The other style, -s2, puts the product type digit higher up,
  1348.      and doesn't display the checksum digit:
  1349.       ||||||||||||||||
  1350.       ||||||||||||||||
  1351.      0||||||||||||||||
  1352.       ||||||||||||||||
  1353.       ||12345||67890||
  1354.  
  1355. 2 See_Also
  1356.      pbm
  1357.  
  1358. 2 Author
  1359.      Copyright (C) 1989 by Jef Poskanzer.
  1360.  
  1361. 1 pi3topbm
  1362.      pi3topbm - convert an Atari Degas .pi3 file into a  portable
  1363.      bitmap
  1364.  
  1365. 2 Synopsis
  1366.      pi3topbm [pi3file]
  1367.  
  1368. 2 Description
  1369.      Reads an Atari Degas .pi3 file as input.  Produces  a  port-
  1370.      able bitmap as output.
  1371.  
  1372. 2 See_Also
  1373.      pbmtopi3, pbm, pi1toppm, ppmtopi1
  1374.  
  1375. 2 Author
  1376.      Copyright (C)  1988  by  David  Beckemeyer  (bdt!david)  and
  1377.      Diomidis D. Spinellis.
  1378.  
  1379. 1 pktopbm
  1380.      pktopbm - convert packed  (PK)  format  font  into  portable
  1381.      bitmap(s)
  1382.  
  1383. 2 Synopsis
  1384.      pktopbm pkfile[.pk] [-c num] pbmfile ...
  1385.  
  1386. 2 Description
  1387.      Reads a packed (PK) font file as input, and  produces  port-
  1388.      able  bitmaps as output. If the filename "-" is used for any
  1389.      of the filenames, the standard  input  stream  (or  standard
  1390.      output where appropriate) will be used.
  1391.  
  1392. 2 Options
  1393.      -c num
  1394.           Sets the character number of the next bitmap written to
  1395.           num.
  1396.  
  1397. 2 See_Also
  1398.      pbmtopk, pbm
  1399.  
  1400. 2 Author
  1401.      Adapted  from  Tom  Rokicki's   pxtopk   by   Angus   Duggan
  1402.      <ajcd@uk.ac.ed.lfcs>.
  1403.  
  1404. 1 xbmtopbm
  1405.      xbmtopbm - convert an X11 or X10 bitmap into a portable bit-
  1406.      map
  1407.  
  1408. 2 Synopsis
  1409.      xbmtopbm [bitmapfile]
  1410.  
  1411. 2 Description
  1412.      Reads an X11 or X10 bitmap as input.   Produces  a  portable
  1413.      bitmap as output.
  1414.  
  1415. 2 See_Also
  1416.      pbmtoxbm, pbmtox10bm, pbm
  1417.  
  1418. 2 Author
  1419.      Copyright (C) 1988 by Jef Poskanzer.
  1420.  
  1421. 1 ybmtopbm
  1422.      ybmtopbm - convert a Bennet Yee "face" file into a  portable
  1423.      bitmap
  1424.  
  1425. 2 Synopsis
  1426.      ybmtopbm [facefile]
  1427.  
  1428. 2 Description
  1429.      Reads a file acceptable to the face and xbm programs by Ben-
  1430.      net Yee (bsy+@cs.cmu.edu).  Writes a portable bitmap as out-
  1431.      put.
  1432.  
  1433. 2 See_Also
  1434.      pbmtoybm, pbm, face, face, xbm
  1435.  
  1436. 2 Author
  1437.      Copyright (C) 1991 by Jamie Zawinski and Jef Poskanzer.
  1438.  
  1439. 1 pbmtopk
  1440.      pbmtopk - convert a portable bitmap into a packed (PK)  for-
  1441.      mat font
  1442.  
  1443. 2 Synopsis
  1444.      pbmtopk pkfile[.pk] tfmfile[.tfm] resolution [-s designsize]
  1445.      [-p num param...] [-C codingscheme] [-F family] [-f optfile]
  1446.      [-c num] [-W width] [-H height] [-D  depth]  [-I  ital]  [-h
  1447.      horiz] [-v vert] [-x xoff] [-y yoff] [pbmfile]...
  1448.  
  1449. 2 Description
  1450.      Reads portable bitmaps as input, and produces a packed  (PK)
  1451.      font  file  and  a TFM (TeX font metric) file as output. The
  1452.      resolution parameter indicates the resolution of  the  font,
  1453.      in dots per inch. If the filename "-" is used for any of the
  1454.      filenames, the standard input  stream  (or  standard  output
  1455.      where appropriate) will be used.
  1456.  
  1457. 2 Options
  1458.      -s designsize
  1459.           Sets the design size  of  the  font,  in  TeX's  points
  1460.           (72.27pt  to  the  inch). The default design size is 1.
  1461.           The TFM parameters are given as multiples of the design
  1462.           size.
  1463.  
  1464.      -p num param...
  1465.           Sets the first num font parameters for  the  font.  The
  1466.           first  seven  parameters are the slant, interword spac-
  1467.           ing, interword space  stretchability,  interword  space
  1468.           shrinkability,  x-height, quad width, and post-sentence
  1469.           extra space of the font. Math and symbol fonts may have
  1470.           more  parameters;  see The TeXbook for a list of these.
  1471.           Reasonable default values  are  chosen  for  parameters
  1472.           which are not specified.
  1473.  
  1474.      -C codingscheme
  1475.           Sets the coding scheme comment in the TFM file.
  1476.  
  1477.      -F family
  1478.           Sets the font family comment in the TFM file.
  1479.  
  1480.      -f optfile
  1481.           Reads the file optfile, which should contain a lines of
  1482.           the form:
  1483.  
  1484.              filename xoff yoff horiz vert width height depth ital
  1485.  
  1486.           The pbm files specified by the filename parameters  are
  1487.           inserted  consecutively  in the font with the specified
  1488.           attributes. If any of the attributes  are  omitted,  or
  1489.           replaced  with  "*", a default value will be calculated
  1490.           from the size of the bitmap. The settings  of  the  -W,
  1491.           -H,  -D, -I, -h, -v, -x, and -y options do not affected
  1492.           characters created in this way.  The  character  number
  1493.           can  be  changed by including a line starting with "=",
  1494.           followed by the new number.  Lines beginning  with  "%"
  1495.           or "#" are ignored.
  1496.  
  1497.      -c num
  1498.           Sets the character number of the  next  bitmap  encoun-
  1499.           tered to num.
  1500.  
  1501.      -W width
  1502.           Sets the TFM width of the next character to  width  (in
  1503.           design size multiples).
  1504.  
  1505.      -H height
  1506.           Sets the TFM height of the next character to height (in
  1507.           design size multiples).
  1508.  
  1509.      -D depth
  1510.           Sets the TFM depth of the next character to  depth  (in
  1511.           design size multiples).
  1512.  
  1513.      -I ital
  1514.           Sets the italic correction of  the  next  character  to
  1515.           ital (in design size multiples).
  1516.  
  1517.      -h horiz
  1518.           Sets the horizontal escapement of the next character to
  1519.           horiz (in pixels).
  1520.  
  1521.      -v vert
  1522.           Sets the vertical escapement of the next  character  to
  1523.           vert (in pixels).
  1524.  
  1525.      -x xoff
  1526.           Sets the horizontal offset of  the  next  character  to
  1527.           xoff (in pixels).
  1528.  
  1529.      -y yoff
  1530.           Sets the vertical offset of the next character to  yoff
  1531.           (in pixels, from the top row).
  1532.  
  1533. 2 See_Also
  1534.      pktopbm, pbm
  1535.  
  1536. 2 Author
  1537.      Adapted  from  Tom  Rokicki's   pxtopk   by   Angus   Duggan
  1538.      <ajcd@uk.ac.ed.lfcs>.
  1539.  
  1540. 1 libpbm              C LIBRARY FUNCTIONS              libpbm
  1541.      libpbm - functions to support portable bitmap programs
  1542.  
  1543. 2 Synopsis
  1544.      #include <pbm.h>
  1545.      cc ... libpbm.a
  1546.  
  1547.  
  1548. 2 Description - PACKAGE-WIDE ROUTINES
  1549.   KEYWORD MATCHING
  1550.      int pm_keymatch( char* str, char* keyword, int minchars )
  1551.  
  1552.      Does a case-insensitive match of str against  keyword.   str
  1553.      can be a leading sunstring of keyword, but at least minchars
  1554.      must be present.
  1555.  
  1556.   LOG BASE TWO
  1557.      int pm_maxvaltobits( int maxval )
  1558.      int pm_bitstomaxval( int bits )
  1559.  
  1560.      Convert between a maxval and  the  minimum  number  of  bits
  1561.      required to hold it.
  1562.  
  1563.   MESSAGES AND ERRORS
  1564.      void pm_message( char* fmt, ... )
  1565.  
  1566.      printf() style routine to write an informational message.
  1567.  
  1568.      void pm_error( char* fmt, ... )
  1569.  
  1570.      printf() style routine to write an error message and abort.
  1571.  
  1572.      void pm_usage( char* usage )
  1573.  
  1574.      Write a usage message.   The  string  should  indicate  what
  1575.      arguments are to be provided to the program.
  1576.  
  1577.   GENERIC FILE MANAGEMENT
  1578.      FILE* pm_openr( char* name )
  1579.  
  1580.      Open the given file  for  reading,  with  appropriate  error
  1581.      checking.   A  filename  of  "-"  is  taken as equivalent to
  1582.      stdin.
  1583.  
  1584.      FILE* pm_openw( char* name )
  1585.  
  1586.      Open the given file  for  writing,  with  appropriate  error
  1587.      checking.
  1588.  
  1589.      void pm_close( FILE* fp )
  1590.  
  1591.      Close the file descriptor, with appropriate error checking.
  1592.  
  1593.   ENDIAN I/O
  1594.      int pm_readbigshort( FILE* in, short* sP )
  1595.      int pm_writebigshort( FILE* out, short s )
  1596.      int pm_readbiglong( FILE* in, long* lP )
  1597.      int pm_writebiglong( FILE* out, long l )
  1598.      int pm_readlittleshort( FILE* in, short* sP )
  1599.      int pm_writelittleshort( FILE* out, short s )
  1600.      int pm_readlittlelong( FILE* in, long* lP )
  1601.      int pm_writelittlelong( FILE* out, long l )
  1602.  
  1603.      Routines to read and write short and  long  ints  in  either
  1604.      big- or little-endian byte order.
  1605.  
  1606. 2 Description - PBM-SPECIFIC ROUTINES
  1607.   TYPES AND CONSTANTS
  1608.      typedef ... bit;
  1609.      #define PBM_WHITE ...
  1610.      #define PBM_BLACK ...
  1611.  
  1612.      each bit should contain only  the  values  of  PBM_WHITE  or
  1613.      PBM_BLACK.
  1614.  
  1615.      #define PBM_FORMAT ...
  1616.      #define RPBM_FORMAT ...
  1617.      #define PBM_TYPE PBM_FORMAT
  1618.      #define PBM_FORMAT_TYPE(f) ...
  1619.  
  1620.      For distinguishing different file formats and types.
  1621.  
  1622.   INITIALIZATION
  1623.      void pbm_init( int* argcP, char* argv[] )
  1624.  
  1625.      All PBM programs must call this routine.
  1626.  
  1627.   MEMORY MANAGEMENT
  1628.      bit** pbm_allocarray( int cols, int rows )
  1629.  
  1630.      Allocate an array of bits.
  1631.  
  1632.      bit* pbm_allocrow( int cols )
  1633.  
  1634.      Allocate a row of the given number of bits.
  1635.  
  1636.      void pbm_freearray( bit** bits, int rows )
  1637.  
  1638.      Free the array allocated  with  pbm_allocarray()  containing
  1639.      the given number of rows.
  1640.  
  1641.      void pbm_freerow( bit* bitrow )
  1642.  
  1643.      Free a row of bits.
  1644.  
  1645.   READING FILES
  1646.      void pbm_readpbminit( FILE* fp, int* colsP, int* rowsP, int* formatP )
  1647.  
  1648.      Read the header from a PBM file, filling in the  rows,  cols
  1649.      and format variables.
  1650.  
  1651.      void pbm_readpbmrow( FILE* fp, bit* bitrow, int cols, int format )
  1652.  
  1653.      Read a row of bits into the bitrow array.  Format  and  cols
  1654.      were filled in by pbm_readpbminit().
  1655.  
  1656.      bit** pbm_readpbm( FILE* fp, int* colsP, int* rowsP )
  1657.  
  1658.      Read an entire bitmap file into memory, returning the  allo-
  1659.      cated  array  and  filling  in  the rows and cols variables.
  1660.      This function combines  pbm_readpbminit(),  pbm_allocarray()
  1661.      and pbm_readpbmrow().
  1662.  
  1663.      char* pm_read_unknown_size( FILE* fp, long* nread )
  1664.  
  1665.      Read an entire file or input stream of  unknown  size  to  a
  1666.      buffer.   Allocate memory more memory as needed. The calling
  1667.      routine has  to  free  the  allocated  buffer  with  free().
  1668.      pm_read_unknown_size()  returns  a  pointer to the allocated
  1669.      buffer. The nread argument returns the number of bytes read.
  1670.  
  1671.   WRITING FILES
  1672.      void pbm_writepbminit( FILE* fp, int cols, int rows, int forceplain )
  1673.  
  1674.      Write the header for a portable bitmap file.  The forceplain
  1675.      flag forces a plain-format file to be written, as opposed to
  1676.      a raw-format one.
  1677.  
  1678.      void pbm_writepbmrow( FILE* fp, bit* bitrow, int cols, int forceplain )
  1679.  
  1680.      Write a row from a portable bitmap.
  1681.  
  1682.      void pbm_writepbm( FILE* fp, bit** bits, int cols, int rows, int forceplain )
  1683.  
  1684.      Write the header and all data for a portable  bitmap.   This
  1685.      function combines pbm_writepbminit() and pbm_writepbmrow().
  1686.  
  1687. 2 See_Also
  1688.      libpgm, libppm, libpnm
  1689.  
  1690. 2 Author
  1691.      Copyright (C) 1989, 1991 by Tony Hansen and Jef Poskanzer.
  1692.  
  1693. 1 pbm
  1694.      pbm - portable bitmap file format
  1695.  
  1696. 2 Description
  1697.      The portable bitmap format is a  lowest  common  denominator
  1698.      monochrome  file format.  It was originally designed to make
  1699.      it reasonable to mail bitmaps  between  different  types  of
  1700.      machines  using  the  typical stupid network mailers we have
  1701.      today.  Now it serves as the common language of a large fam-
  1702.      ily of bitmap conversion filters.  The definition is as fol-
  1703.      lows:
  1704.  
  1705.      - A "magic number" for identifying the  file  type.   A  pbm
  1706.        file's magic number is the two characters "P1".
  1707.  
  1708.      - Whitespace (blanks, TABs, CRs, LFs).
  1709.  
  1710.      - A width, formatted as ASCII characters in decimal.
  1711.  
  1712.      - Whitespace.
  1713.  
  1714.      - A height, again in ASCII decimal.
  1715.  
  1716.      - Whitespace.
  1717.  
  1718.      - Width * height bits, each either '1' or '0',  starting  at
  1719.        the  top-left  corner  of the bitmap, proceeding in normal
  1720.        English reading order.
  1721.  
  1722.      - The character '1' means black, '0' means white.
  1723.  
  1724.      - Whitespace in the bits section is ignored.
  1725.  
  1726.      - Characters from a "#" to the next end-of-line are  ignored
  1727.        (comments).
  1728.  
  1729.      - No line should be longer than 70 characters.
  1730.  
  1731.      Here is an example of a small bitmap in this format:
  1732.      P1
  1733.      # feep.pbm
  1734.      24 7
  1735.      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  1736.      0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0
  1737.      0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0
  1738.      0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0
  1739.      0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0
  1740.      0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0
  1741.      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  1742.  
  1743.      Programs that read this format should be as lenient as  pos-
  1744.      sible, accepting anything that looks remotely like a bitmap.
  1745.      There is also a variant on the format, available by  setting
  1746.      the  RAWBITS  option  at compile time.  This variant is dif-
  1747.      ferent in the following ways:
  1748.  
  1749.      - The "magic number" is "P4" instead of "P1".
  1750.  
  1751.      - The bits are stored eight per byte, high bit first low bit
  1752.        last.
  1753.  
  1754.      - No whitespace is allowed in the bits section, and  only  a
  1755.        single  character  of  whitespace (typically a newline) is
  1756.        allowed after the height.
  1757.  
  1758.      - The files are eight times smaller and many times faster to
  1759.        read and write.
  1760.  
  1761. 2 See_Also
  1762.     atktopbm, brushtopbm,  cmuwmtopbm,  g3topbm,  gemtopbm, icontopbm,
  1763.     macptopbm,  mgrtopbm,  pi3topbm,   xbmtopbm,  ybmtopbm,  pbmto10x,
  1764.     pnmtoascii, pbmtoatk, pbmtobbnbg, pbmtocmuwm, pbmtoepson, pbmtog3,
  1765.     pbmtogem,  pbmtogo,  pbmtoicon,  pbmtolj,  pbmtomacp,    pbmtomgr,
  1766.     pbmtopi3,  pbmtoplot,  pbmtoptx,  pbmtox10bm,  pbmtoxbm, pbmtoybm,
  1767.     pbmtozinc,  pbmlife, pbmmake, pbmmask, pbmreduce, pbmtext, pbmupc,
  1768.     pnm, pgm, ppm
  1769.  
  1770. 2 Author
  1771.      Copyright (C) 1989, 1991 by Jef Poskanzer.
  1772.  
  1773. 1 bioradtopgm
  1774.      bioradtopgm - convert a Biorad confocal file into a portable
  1775.      graymap
  1776.  
  1777. 2 Synopsis
  1778.      bioradtopgm [-image#] [imagedata]
  1779.  
  1780. 2 Description
  1781.      Reads a Biorad confocal file as input.  Produces a  portable
  1782.      graymap  as  output.  If the resulting image is upside down,
  1783.      run it through pnmflip -tb .
  1784.  
  1785. 2 Options
  1786.      -image#
  1787.           A Biorad image file may contain more  than  one  image.
  1788.           With  this flag, you can specify which image to extract
  1789.           (only one at a time). The first image in the  file  has
  1790.           number  zero.  If  no  image  number  is supplied, only
  1791.           information about the image  size  and  the  number  of
  1792.           images  in  the input is printed out. No output is pro-
  1793.           duced.
  1794.  
  1795. 2 Bugs
  1796.      A Biorad image may be in word format. If PbmPlus is not com-
  1797.      piled  with  the "BIGGRAYS" flag, word files can not be con-
  1798.      verted. See the Makefile.
  1799.  
  1800. 2 See_Also
  1801.      pgm, pnmflip
  1802.  
  1803. 2 Authors
  1804.      Copyright (C) 1993 by Oliver Trepte
  1805.  
  1806. 1 fitstopgm
  1807.      fitstopgm - convert a FITS file into a portable graymap
  1808.  
  1809. 2 Synopsis
  1810.      fitstopgm [-image N] [FITSfile]
  1811.  
  1812. 2 Description
  1813.      Reads a FITS file as input.  Produces a portable graymap  as
  1814.      output.   The results may need to be flipped top for bottom;
  1815.      if so, just pipe the output through pnmflip -tb.
  1816.  
  1817. 2 Options
  1818.      The -image option is for FITS files with  three  axes.   The
  1819.      assumption  is  that  the third axis is for multiple images,
  1820.      and this option lets you select which one you want.
  1821.  
  1822.      All flags can be abbreviated to their shortest  unique  pre-
  1823.      fix.
  1824.  
  1825. 2 References
  1826.      FITS stands for Flexible Image  Transport  System.   A  full
  1827.      description can be found in Astronomy & Astrophysics Supple-
  1828.      ment Series 44 (1981), page 363.
  1829.  
  1830. 2 See_Also
  1831.      pgmtofits, pgm, pnmflip
  1832.  
  1833. 2 Author
  1834.      Copyright (C) 1989 by Jef Poskanzer.
  1835.  
  1836. 1 fstopgm
  1837.      fstopgm - convert a Usenix FaceSaver(tm) file into  a  port-
  1838.      able graymap
  1839.  
  1840. 2 Synopsis
  1841.      fstopgm [fsfile]
  1842.  
  1843. 2 Description
  1844.      Reads a Usenix FaceSaver(tm)  file  as  input.   Produces  a
  1845.      portable graymap as output.
  1846.  
  1847.      FaceSaver(tm)  files  sometimes  have  rectangular   pixels.
  1848.      While  fstopgm  won't  re-scale  them into square pixels for
  1849.      you, it will give you the precise pnmscale command that will
  1850.      do  the job.  Because of this, reading a FaceSaver(tm) image
  1851.      is a two-step process.  First you do:
  1852.        fstopgm > /dev/null
  1853.      This will tell you whether you need to  use  pnmscale.  Then
  1854.      use one of the following pipelines:
  1855.        fstopgm | pgmnorm
  1856.        fstopgm | pnmscale -whatever | pgmnorm
  1857.      To go to PBM, you want something more like one of these:
  1858.        fstopgm | pnmenlarge 3 | pgmnorm | pgmtopbm
  1859.        fstopgm | pnmenlarge 3 | pnmscale <whatever> | pgmnorm | pgmtopbm
  1860.      You want to enlarge when going to a bitmap because otherwise
  1861.      you  lose information; but enlarging by more than 3 does not
  1862.      look good.
  1863.  
  1864.      FaceSaver is a registered trademark of  Metron  Computerware
  1865.      Ltd. of Oakland, CA.
  1866.  
  1867. 2 See_Also
  1868.      pgmtofs, pgm, pgmnorm, pnmenlarge,  pnmscale,
  1869.      pgmtopbm
  1870.  
  1871. 2 Author
  1872.      Copyright (C) 1989 by Jef Poskanzer.
  1873.  
  1874. 1 hipstopgm
  1875.      hipstopgm - convert a HIPS file into a portable graymap
  1876.  
  1877. 2 Synopsis
  1878.      hipstopgm [hipsfile]
  1879.  
  1880. 2 Description
  1881.      Reads a HIPS file as input.  Produces a portable graymap  as
  1882.      output.
  1883.  
  1884.      If the HIPS file contains more than one frame  in  sequence,
  1885.      hipstopgm will concatenate all the frames vertically.
  1886.  
  1887.      HIPS is a format developed at the Human Information Process-
  1888.      ing Laboratory, NYU.
  1889.  
  1890. 2 See_Also
  1891.      pgm
  1892.  
  1893. 2 Author
  1894.      Copyright (C) 1989 by Jef Poskanzer.
  1895.  
  1896. 1 lispmtopgm
  1897.      lispmtopgm - convert a Lisp Machine  bitmap  file  into  pgm
  1898.      format
  1899.  
  1900. 2 Synopsis
  1901.      lispmtopgm [lispmfile]
  1902.  
  1903. 2 Description
  1904.      Reads a Lisp Machine bitmap as input.  Produces  a  portable
  1905.      graymap as output.
  1906.  
  1907.      This is the file format written by  the  tv:write-bit-array-
  1908.      file function on TI Explorer and Symbolics lisp machines.
  1909.  
  1910.      Multi-plane bitmaps on lisp  machines  are  color;  but  the
  1911.      lispm  image file format does not include a color map, so we
  1912.      must treat it as a graymap instead.  This is unfortunate.
  1913.  
  1914. 2 See_Also
  1915.      pgmtolispm, pgm
  1916.  
  1917. 2 Bugs
  1918.      The Lispm bitmap file format is a bit quirky;   Usually  the
  1919.      image  in  the  file  has  its  width rounded up to the next
  1920.      higher multiple of 32, but not always.  If the width is  not
  1921.      a  multiple  of  32,  we  don't  deal  with it properly, but
  1922.      because of the Lispm microcode, such arrays are probably not
  1923.      image data anyway.
  1924.  
  1925.      Also, the lispm code for saving bitmaps has a bug,  in  that
  1926.      if  you  are writing a bitmap which is not mod32 across, the
  1927.      file may be up to 7 bits too short!  They round down instead
  1928.      of up, and we don't handle this bug gracefully.
  1929.  
  1930.      No color.
  1931.  
  1932. 2 Author
  1933.      Copyright (C) 1991 by Jamie Zawinski and Jef Poskanzer.
  1934.  
  1935. 1 pbmtopgm
  1936.      pbmtopgm - convert portable bitmap to  portable  graymap  by
  1937.      averaging areas
  1938.  
  1939. 2 Synopsis
  1940.      pbmtopgm <width> <height> [pbmfile]
  1941.  
  1942. 2 Description
  1943.      Reads a portable bitmap as input. Outputs a portable graymap
  1944.      created  by  averaging  the number of pixels within a sample
  1945.      area of width by height around each point. Pbmtopgm is simi-
  1946.      lar  to a special case of ppmconvol. A ppmsmooth step may be
  1947.      needed after pbmtopgm.
  1948.  
  1949.      Pbmtopgm has the effect of anti-aliasing bitmaps which  con-
  1950.      tain distinct line features.
  1951.  
  1952. 2 See_Also
  1953.      pbm
  1954.  
  1955. 2 Author
  1956.      Copyright (C) 1990 by Angus Duggan Copyright (C) 1989 by Jef
  1957.      Poskanzer.
  1958.  
  1959.      Permission  to  use,  copy,  modify,  and  distribute   this
  1960.      software  and  its documentation for any purpose and without
  1961.      fee is hereby granted, provided  that  the  above  copyright
  1962.      notice  appear  in  all  copies and that both that copyright
  1963.      notice and this permission notice appear in supporting docu-
  1964.      mentation.   This  software  is  provided  "as  is"  without
  1965.      express or implied warranty.
  1966.  
  1967. 2 Notes
  1968.      Pbmtopgm works best with odd sample width and heights.
  1969.  
  1970. 1 pgmbentley
  1971.      pgmbentley - Bentleyize a portable graymap
  1972.  
  1973. 2 Synopsis
  1974.      pgmbentley [pgmfile]
  1975.  
  1976. 2 Description
  1977.      Reads a portable graymap as  input.   Performs  The  Bentley
  1978.      Effect, and writes a portable graymap as output.
  1979.  
  1980.      The Bentley Effect is described in "Beyond  Photography"  by
  1981.      Holzmann,  chapter  4,  photo  4.   It's a vertical smearing
  1982.      based on brightness.
  1983.  
  1984. 2 See_Also
  1985.      pgmoil, ppmrelief, pgm
  1986.  
  1987. 2 Author
  1988.      Copyright (C) 1990 by Wilson Bent (whb@hoh-2.att.com)
  1989.  
  1990. 1 pgmenhance
  1991.      pgmenhance - edge-enhance a portable graymap
  1992.  
  1993. 2 Synopsis
  1994.      pgmenhance [-N] [pgmfile]
  1995.  
  1996. 2 Description
  1997.      Reads a portable graymap as input.  Enhances the edges,  and
  1998.      writes a portable graymap as output.
  1999.  
  2000.      The  edge  enhancing  technique  is  taken  from  Philip  R.
  2001.      Thompson's "xim" program, which in turn took it from section
  2002.      6 of "Digital Halftones by Dot Diffusion", D. E. Knuth,  ACM
  2003.      Transaction  on  Graphics Vol. 6, No. 4, October 1987, which
  2004.      in turn got it from two 1976 papers by J. F. Jarvis et. al.
  2005.  
  2006. 2 Options
  2007.      The optional -N flag should be a digit from 1 to  9.   1  is
  2008.      the  lowest  level  of  enhancement,  9  is the highest, The
  2009.      default is 9.
  2010.  
  2011. 2 See_Also
  2012.      pgmedge, pgm, pbm
  2013.  
  2014. 2 Author
  2015.      Copyright (C) 1989 by Jef Poskanzer.
  2016.  
  2017. 1 pgmhist
  2018.      pgmhist - print a histogram of  the  values  in  a  portable
  2019.      graymap
  2020.  
  2021. 2 Synopsis
  2022.      pgmhist [pgmfile]
  2023.  
  2024. 2 Description
  2025.      Reads a portable graymap as input.  Prints  a  histogram  of
  2026.      the gray values.
  2027.  
  2028. 2 See_Also
  2029.      pgmnorm, pgm, ppmhist
  2030.  
  2031. 2 Author
  2032.      Copyright (C) 1989 by Jef Poskanzer.
  2033.  
  2034. 1 pgmnoise
  2035.      pgmnoise - create a graymap made up of white noise
  2036.  
  2037. 2 Synopsis
  2038.      pgmnoise width height
  2039.  
  2040. 2 Description
  2041.      Creates a portable graymap that is made up of random  pixels
  2042.      with gray values in the range of 0 to PGM_MAXMAXVAL (depends
  2043.      on the compilation, either 255 or 65535). The graymap has  a
  2044.      size of width * height pixels.
  2045.  
  2046. 2 See_Also
  2047.      pgm(5)
  2048.  
  2049. 2 Author
  2050.      Copyright (C) 1993 by Frank Neumann
  2051.  
  2052. 1 pgmnorm
  2053.      pgmnorm - normalize the contrast in a portable graymap
  2054.  
  2055. 2 Synopsis
  2056.      pgmnorm [-bpercent N | -bvalue N] [-wpercent N | -wvalue  N]
  2057.      [pgmfile]
  2058.  
  2059. 2 Description
  2060.      Reads a portable graymap as input.  Normalizes the  contrast
  2061.      by  forcing the lightest pixels to white, the darkest pixels
  2062.      to black, and linearly rescaling the ones  in  between;  and
  2063.      produces a portable graymap as output.
  2064.  
  2065. 2 Options
  2066.      By default, the darkest 2 percent of all pixels  are  mapped
  2067.      to  black,  and  the lightest 1 percent are mapped to white.
  2068.      You can override these percentages by  using  the  -bpercent
  2069.      and  -wpercent  flags,  or  you  can specify the exact pixel
  2070.      values to be mapped by using the -bvalue and -wvalue  flags.
  2071.      Appropriate  numbers  for  the  flags can be gotten from the
  2072.      pgmhist tool.  If you just want  to  enhance  the  contrast,
  2073.      then choose values at elbows in the histogram; e.g. if value
  2074.      29 represents 3% of the image but value 30  represents  20%,
  2075.      choose  30  for  bvalue.   If you want to lighten the image,
  2076.      then set bvalue to 0 and just fiddle with wvalue; similarly,
  2077.      to  darken  the  image,  set  wvalue to maxval and play with
  2078.      bvalue.
  2079.  
  2080.      All flags can be abbreviated to their shortest  unique  pre-
  2081.      fix.
  2082.  
  2083. 2 See_Also
  2084.      pgmhist, pgm
  2085.  
  2086. 2 Author
  2087.      Partially based on the fbnorm filter  in  Michael  Mauldin's
  2088.      "Fuzzy Pixmap" package.
  2089.  
  2090.      Copyright (C) 1989 by Jef Poskanzer.
  2091.  
  2092. 1 pgmoil
  2093.      pgmoil - turn a portable graymap into an oil painting
  2094.  
  2095. 2 Synopsis
  2096.      pgmoil [-n N] [pgmfile]
  2097.  
  2098. 2 Description
  2099.      Reads a portable graymap as input.  Does an "oil  transfer",
  2100.      and writes a portable graymap as output.
  2101.  
  2102.      The oil transfer is described  in  "Beyond  Photography"  by
  2103.      Holzmann,  chapter  4,  photo  7.   It's a sort of localized
  2104.      smearing.
  2105.  
  2106. 2 Options
  2107.      The optional -n flag controls the size of the area  smeared.
  2108.      The default value is 3.
  2109.  
  2110. 2 Bugs
  2111.      Takes a long time to run.
  2112.  
  2113. 2 See_Also
  2114.      pgmbentley, ppmrelief, pgm
  2115.  
  2116. 2 Author
  2117.      Copyright (C) 1990 by Wilson Bent (whb@hoh-2.att.com)
  2118.  
  2119. 1 pgmramp
  2120.      pgmramp - generate a grayscale ramp
  2121.  
  2122. 2 Synopsis
  2123.      pgmramp -lr|-tb | -rectangle|-ellipse width height
  2124.  
  2125. 2 Description
  2126.      Generates a graymap  of  the  specified  size  containing  a
  2127.      black-to-white ramp.  These ramps are useful for multiplying
  2128.      with other images, using the pnmarith tool.
  2129.  
  2130. 2 Options
  2131.      -lr  A left to right ramp.
  2132.  
  2133.      -tb  A top to bottom ramp.
  2134.  
  2135.      -rectangle
  2136.           A rectangular ramp.
  2137.  
  2138.      -ellipse
  2139.           An elliptical ramp.
  2140.  
  2141.      All flags can be abbreviated to their shortest  unique  pre-
  2142.      fix.
  2143.  
  2144. 2 See_Also
  2145.      pnmarith, pgm
  2146.  
  2147. 2 Author
  2148.      Copyright (C) 1989 by Jef Poskanzer.
  2149.  
  2150. 1 pgmtofits
  2151.      pgmtofits - convert a portable graymap into FITS format
  2152.  
  2153. 2 Synopsis
  2154.      pgmtofits [pgmfile]
  2155.  
  2156. 2 Description
  2157.      Reads a portable graymap as input.  Produces a FITS file  as
  2158.      output.
  2159.  
  2160.      FITS stands for Flexible Image  Transport  System.   A  full
  2161.      description can be found in Astronomy & Astrophysics Supple-
  2162.      ment Series 44 (1981), page 363.
  2163.  
  2164. 2 See_Also
  2165.      fitstopgm, pgm
  2166.  
  2167. 2 Author
  2168.      Copyright (C) 1989 by Wilson H. Bent (whb@hoh-2.att.com).
  2169.  
  2170. 1 pgmtofs
  2171.      pgmtofs - convert portable graymap to  Usenix  FaceSaver(tm)
  2172.      format
  2173.  
  2174. 2 Synopsis
  2175.      pgmtofs [pgmfile]
  2176.  
  2177. 2 Description
  2178.      Reads  a  portable  graymap  as  input.    Produces   Usenix
  2179.      FaceSaver(tm) format as output.
  2180.  
  2181.      FaceSaver is a registered trademark of  Metron  Computerware
  2182.      Ltd. of Oakland, CA.
  2183.  
  2184. 2 See_Also
  2185.      fstopgm, pgm
  2186.  
  2187. 2 Author
  2188.      Copyright (C) 1991 by Jef Poskanzer.
  2189.  
  2190. 1 pgmtolispm
  2191.      pgmtolispm - convert a portable graymap  into  Lisp  Machine
  2192.      format
  2193.  
  2194. 2 Synopsis
  2195.      pgmtolispm [pgmfile]
  2196.  
  2197. 2 Description
  2198.      Reads a portable graymap as input.  Produces a Lisp  Machine
  2199.      bitmap as output.
  2200.  
  2201.      This is the file format read by  the  tv:read-bit-array-file
  2202.      function on TI Explorer and Symbolics lisp machines.
  2203.  
  2204.      Given a pgm (instead of a pbm) a multi-plane image  will  be
  2205.      output.  This is probably not useful unless you have a color
  2206.      lisp machine.
  2207.  
  2208.      Multi-plane bitmaps on lisp  machines  are  color;  but  the
  2209.      lispm  image file format does not include a color map, so we
  2210.      must treat it as a graymap instead.  This is unfortunate.
  2211.  
  2212. 2 See_Also
  2213.      lispmtopgm, pgm
  2214.  
  2215. 2 Bugs
  2216.      Output width is always rounded up to the nearest multiple of
  2217.      32;  this might not always be what you want, but it probably
  2218.      is (arrays which are not modulo 32 cannot be passed  to  the
  2219.      Lispm  BITBLT  function, and thus cannot easily be displayed
  2220.      on the screen).
  2221.  
  2222.      No color.
  2223.  
  2224. 2 Author
  2225.      Copyright (C) 1991 by Jamie Zawinski and Jef Poskanzer.
  2226.  
  2227. 1 pgmtopbm
  2228.      pgmtopbm - convert a portable graymap into a portable bitmap
  2229.  
  2230. 2 Synopsis
  2231.      pgmtopbm [-floyd|-fs|-threshold  |-dither8|-d8|-cluster3  |-
  2232.      c3|-cluster4|-c4 |-cluster8|-c8] [-value val] [pgmfile]
  2233.  
  2234. 2 Description
  2235.      Reads a portable graymap as input.  Produces a portable bit-
  2236.      map as output.
  2237.  
  2238.      Note that there is no pbmtopgm converter,  because  any  pgm
  2239.      program can read pbm files automagically.
  2240.  
  2241. 2 Options
  2242.      The default quantization method  is  boustrophedonic  Floyd-
  2243.      Steinberg  error  diffusion (-floyd or -fs).  Also available
  2244.      are simple thresholding (-threshold); Bayer's ordered dither
  2245.      (-dither8) with a 16x16 matrix; and three different sizes of
  2246.      45-degree  clustered-dot  dither  (-cluster3,  -cluster4,  -
  2247.      cluster8).
  2248.  
  2249.      Floyd-Steinberg will almost always  give  the  best  looking
  2250.      results;  however, looking good is not always what you want.
  2251.      For instance, thresholding can be used in  a  pipeline  with
  2252.      the  pnmconvol tool, for tasks like edge and peak detection.
  2253.      And clustered-dot dithering gives a  newspaper-ish  look,  a
  2254.      useful special effect.
  2255.  
  2256.      The -value flag alters the  thresholding  value  for  Floyd-
  2257.      Steinberg  and  simple  thresholding.   It  should be a real
  2258.      number between 0 and 1.   Above  0.5  means  darker  images;
  2259.      below 0.5 means lighter.
  2260.  
  2261.      All flags can be abbreviated to their shortest  unique  pre-
  2262.      fix.
  2263.  
  2264. 2 References
  2265.      The only reference you need for this stuff is "Digital Half-
  2266.      toning" by Robert Ulichney, MIT Press, ISBN 0-262-21009-6.
  2267.  
  2268. 2 See_Also
  2269.      pbmreduce, pgm, pbm, pnmconvol
  2270.  
  2271. 2 Author
  2272.      Copyright (C) 1989 by Jef Poskanzer.
  2273.  
  2274. 1 psidtopgm
  2275.      psidtopgm - convert PostScript "image" data into a  portable
  2276.      graymap
  2277.  
  2278. 2 Synopsis
  2279.      psidtopgm width height bits/sample [imagedata]
  2280.  
  2281. 2 Description
  2282.      Reads the "image" data from  a  PostScript  file  as  input.
  2283.      Produces a portable graymap as output.
  2284.  
  2285.      This is a very simple and limited program, and is here  only
  2286.      because  so  many  people  have asked for it.  To use it you
  2287.      have to manually extract the readhexstring data portion from
  2288.      your  PostScript  file, and then give the width, height, and
  2289.      bits/sample on the command line.  Before you  attempt  this,
  2290.      you  should  at  least  read  the description of the "image"
  2291.      operator in the PostScript Language Reference Manual.
  2292.  
  2293.      It would probably not be too hard to  write  a  script  that
  2294.      uses  this  filter  to read a specific variety of PostScript
  2295.      image, but the variation is too great  to  make  a  general-
  2296.      purpose  reader.   Unless,  of  course,  you want to write a
  2297.      full-fledged PostScript interpreter...
  2298.  
  2299. 2 See_Also
  2300.      pnmtops, pgm
  2301.  
  2302. 2 Author
  2303.      Copyright (C) 1989 by Jef Poskanzer.
  2304.  
  2305. 1 spottopgm
  2306.      spottopgm - convert SPOT satellite images to Portable  Grey-
  2307.      map format
  2308.  
  2309. 2 Synopis
  2310.      spottopgm [-1|2|3]  [Firstcol  Firstline  Lastcol  Lastline]
  2311.      inputfile
  2312.  
  2313. 2 Options
  2314.      -1|2|3  Extract the given colour from the  SPOT  image.  The
  2315.              colours  are  infra-red,  visible  light  and ultra-
  2316.              violet, although I don't know which  corresponds  to
  2317.              which  number.  If the image is in colour, this will
  2318.              be announced on standard error. The  default  colour
  2319.              is 1.
  2320.  
  2321.      Firstcol Firstline Lastcol Lastline
  2322.              Extract the specified rectangle from the SPOT image.
  2323.              Most  SPOT  images  are  3000 lines long and 3000 or
  2324.              more columns wide.  Unfortunately  the  SPOT  format
  2325.              only  gives  the width and not the length. The width
  2326.              is printed on standard error. The default  rectangle
  2327.              is the width of the input image by 3000 lines.
  2328.  
  2329. 2 Description
  2330.      Spottopgm converts the named inputfile into Portable Greymap
  2331.      format,  defaulting  to  the  first color and the whole SPOT
  2332.      image unless specified by the options.
  2333.  
  2334. 2 INSTALLATION
  2335.      You  must  edit  the  source  program  and   either   define
  2336.      BIGNDIAN  or  LITTLENDIAN,  and  fix  the  typedefs  for
  2337.      uint32, uint16 and uint8 appropriately.
  2338.  
  2339. 2 Bugs
  2340.      Currently spottopgm doesn't  determine  the  length  of  the
  2341.      input  file;  this  would  involve two passes over the input
  2342.      file. It defaults to 3000 lines instead.
  2343.  
  2344.      Spottopgm could extract a three-color  image  (ppm),  but  I
  2345.      didn't feel like making the program more complicated than it
  2346.      is now.  Besides,  there  is  no  one-to-one  correspondence
  2347.      between  red,  green, blue and infra-red, visible and ultra-
  2348.      violet.
  2349.  
  2350.      I've only had a limited number of SPOT images to play  with,
  2351.      and  therefore wouldn't guarantee that this will work on any
  2352.      other images.
  2353.  
  2354. 2 Author
  2355.      Warren Toomey  wkt@csadfa.cs.adfa.oz.au
  2356.  
  2357. 1 pgmcrater
  2358.      pgmcrater - create cratered terrain by fractal forgery
  2359.  
  2360. 2 Synopsis
  2361.      pgmcrater [-number n] [-height|-ysize s] [-width|-xsize s]
  2362.                [-gamma g]
  2363.  
  2364. 2 Description
  2365.      pgmcrater creates a portable graymap which  mimics  cratered
  2366.      terrain.  The graymap is created by simulating the impact of
  2367.      a given number of craters with  random  position  and  size,
  2368.      then  rendering  the resulting terrain elevations based on a
  2369.      light source shining from one side of the screen.  The  size
  2370.      distribution  of  the  craters is based on a power law which
  2371.      results in many more small craters  than  large  ones.   The
  2372.      number  of  craters of a given size varies as the reciprocal
  2373.      of the area as described on pages 31 and 32 of  Peitgen  and
  2374.      Saupe[1];  cratered  bodies in the Solar System are observed
  2375.      to obey this  relationship.   The  formula  used  to  obtain
  2376.      crater  radii  governed by this law from a uniformly distri-
  2377.      buted pseudorandom sequence was developed by Rudy Rucker.
  2378.  
  2379.      High resolution images with large numbers of  craters  often
  2380.      benefit  from  being piped through pnmsmooth.  The averaging
  2381.      performed by this process eliminates some of the jagged pix-
  2382.      els  and  lends  a  mellow  ``telescopic image'' feel to the
  2383.      overall picture.
  2384.  
  2385. 2 Options
  2386.      -number n Causes n craters to be generated.  If  no  -number
  2387.                specification is given, 50000 craters will be gen-
  2388.                erated.  Don't expect to see them all!  For  every
  2389.                large  crater  there are many, many more tiny ones
  2390.                which tend simply to erode the landscape.  In gen-
  2391.                eral,  the more craters you specify the more real-
  2392.                istic the result; ideally you want the entire ter-
  2393.                rain  to  have  been extensively turned over again
  2394.                and again by cratering.   High  resolution  images
  2395.                containing  five  to ten million craters are stun-
  2396.                ning but take quite a while to create.
  2397.  
  2398.      -height height
  2399.                Sets the height of the generated image  to  height
  2400.                pixels.  The default height is 256 pixels.
  2401.  
  2402.      -width width
  2403.                Sets the width of the  generated  image  to  width
  2404.                pixels.  The default width is 256 pixels.
  2405.  
  2406.      -xsize width
  2407.                Sets the width of the  generated  image  to  width
  2408.                pixels.  The default width is 256 pixels.
  2409.  
  2410.  
  2411.      -ysize height
  2412.                Sets the height of the generated image  to  height
  2413.                pixels.  The default height is 256 pixels.
  2414.  
  2415.      -gamma factor
  2416.                The specified factor is used to gamma correct  the
  2417.                graymap   in  the  same  manner  as  performed  by
  2418.                pnmgamma.  The default value is 1.0, which results
  2419.                in  a medium contrast image.  Values larger than 1
  2420.                lighten  the  image  and  reduce  contrast,  while
  2421.                values  less  than  1 darken the image, increasing
  2422.                contrast.
  2423.  
  2424.      All flags can be abbreviated to their shortest  unique  pre-
  2425.      fix.
  2426.  
  2427. 2 Bugs
  2428.      The -gamma option  isn't  really  necessary  since  you  can
  2429.      achieve  the same effect by piping the output from pgmcrater
  2430.      through pnmgamma.  However, pgmcrater performs  an  internal
  2431.      gamma  map  anyway in the process of rendering the elevation
  2432.      array into a graymap, so there's no additional  overhead  in
  2433.      allowing a user-specified gamma.
  2434.  
  2435.      Real craters  have  two  distinct  morphologies.   pgmcrater
  2436.      simulates  only  small  craters,  which are hemispherical in
  2437.      shape (regardless of the incidence angle  of  the  impacting
  2438.      body,  as long as the velocity is sufficiently high).  Large
  2439.      craters, such as Copernicus and Tycho on the  Moon,  have  a
  2440.      ``walled plain'' shape with a cross-section more like:
  2441.                 /\                            /\
  2442.           _____/  \____________/\____________/  \_____
  2443.      Larger craters should really use this profile, including the
  2444.      central  peak,  and totally obliterate the pre-existing ter-
  2445.      rain.
  2446.  
  2447. 2 See_Also
  2448.      pgm, pnmgamma, pnmsmooth
  2449.  
  2450.      [1]  Peitgen, H.-O., and Saupe,  D.  eds.,  The  Science  Of
  2451.           Fractal Images, New York: Springer Verlag, 1988.
  2452.  
  2453. 2 Author
  2454.           John Walker
  2455.           Autodesk SA
  2456.           Avenue des Champs-Montants 14b
  2457.           CH-2074 MARIN
  2458.           Suisse/Schweiz/Svizzera/Svizra/Switzerland
  2459.           Usenet:  kelvin@Autodesk.com
  2460.           Fax:     038/33 88 15
  2461.           Voice:   038/33 76 33
  2462.  
  2463.      software  and  its documentation for any purpose and without
  2464.      fee is hereby granted, without any  conditions  or  restric-
  2465.      tions.   This software is provided ``as is'' without express
  2466.      or implied warranty.
  2467.  
  2468.      PLUGWARE! If you like this kind of stuff, you may also enjoy
  2469.      ``James Gleick's Chaos--The Software'' for MS-DOS, available
  2470.      for $59.95 from your local software store or  directly  from
  2471.      Autodesk,  Inc.,  Attn:  Science Series, 2320 Marinship Way,
  2472.      Sausalito, CA 94965, USA.  Telephone: (800)  688-2344  toll-
  2473.      free  or,  outside  the  U.S. (415) 332-2344 Ext 4886.  Fax:
  2474.      (415) 289-4718.  ``Chaos--The  Software''  includes  a  more
  2475.      comprehensive   fractal   forgery  generator  which  creates
  2476.      three-dimensional landscapes as well as clouds and  planets,
  2477.      plus five more modules which explore other aspects of Chaos.
  2478.      The user guide of more than 200 pages includes an  introduc-
  2479.      tion  by  James  Gleick  and  detailed  explanations by Rudy
  2480.      Rucker of the mathematics and algorithms used by  each  pro-
  2481.      gram.
  2482.  
  2483.  
  2484. 1 pgmedge
  2485.      pgmedge - edge-detect a portable graymap
  2486.  
  2487. 2 Synopsis
  2488.      pgmedge [pgmfile]
  2489.  
  2490. 2 Description
  2491.      Reads a portable graymap as input.  Outlines the edges,  and
  2492.      writes  a  portable  graymap  as  output.  Piping the result
  2493.      through pgmtopbm -threshold and playing with  the  threshold
  2494.      value will give a bitmap of the edges.
  2495.  
  2496.      The edge detection technique used is to take the Pythagorean
  2497.      sum  of  two  Sobel gradient operators at 90 degrees to each
  2498.      other.  For more details see "Digital Image  Processing"  by
  2499.      Gonzalez and Wintz, chapter 7.
  2500.  
  2501. 2 See_Also
  2502.      pgmenhance, pgmtopbm, pgm, pbm
  2503.  
  2504. 2 Author
  2505.      Copyright (C) 1991 by Jef Poskanzer.
  2506.  
  2507. 1 pgmtexture
  2508.      pgmtexture - calculate textural features on a portable gray-
  2509.      map
  2510.  
  2511. 2 Synopsis
  2512.      pgmtexture [-d d] [pgmfile]
  2513.  
  2514. 2 Description
  2515.      Reads a portable  graymap  as  input.   Calculates  textural
  2516.      features  based on spatial dependence matrices at 0, 45, 90,
  2517.      and 135 degrees for a distance d (default  =  1).   Textural
  2518.      features include:
  2519.  
  2520.           (1) Angular Second Moment,
  2521.           (2) Contrast,
  2522.           (3) Correlation,
  2523.           (4) Variance,
  2524.           (5) Inverse Difference Moment,
  2525.           (6) Sum Average,
  2526.           (7) Sum Variance,
  2527.           (8) Sum Entropy,
  2528.           (9) Entropy,
  2529.           (10) Difference Variance,
  2530.           (11) Difference Entropy,
  2531.           (12, 13) Information Measures of Correlation, and
  2532.           (14) Maximal Correlation Coefficient.
  2533.  
  2534.      Algorithm taken from:
  2535.      Haralick, R.M., K. Shanmugam, and I.  Dinstein.  1973.  Tex-
  2536.      tural  features  for image classification. IEEE Transactions
  2537.      on Systems, Man, and Cybertinetics, SMC-3(6):610-621.
  2538.  
  2539. 2 Bugs
  2540.      The program can run incredibly slow for large images (larger
  2541.      than  64  x  64)  and command line options are limited.  The
  2542.      method for finding (14) the maximal correlation coefficient,
  2543.      which  requires  finding  the second largest eigenvalue of a
  2544.      matrix Q, does not always converge.
  2545.  
  2546. 2 References
  2547.      IEEE Transactions on Systems, Man, and  Cybertinetics,  SMC-
  2548.      3(6):610-621.
  2549.  
  2550. 2 See_Also
  2551.      pgm, pnmcut
  2552.  
  2553. 2 Author
  2554.      Copyright (C) 1991 by Texas Agricultural Experiment Station,
  2555.      employer for hire of James Darrell McCauley.
  2556.  
  2557. 1 rawtopgm
  2558.      rawtopgm - convert raw grayscale bytes into a portable gray-
  2559.      map
  2560.  
  2561. 2 Synopsis
  2562.      rawtopgm  [-headerskip  N]  [-rowskip  N]   [-tb|-topbottom]
  2563.      [width height] [imagedata]
  2564.  
  2565. 2 Description
  2566.      Reads raw grayscale bytes as  input.   Produces  a  portable
  2567.      graymap  as output.  The input file is just grayscale bytes.
  2568.      If you don't specify the width and  height  on  the  command
  2569.      line,  the  program will check the size of the image and try
  2570.      to make a quadratic image of it. It is an error to supply  a
  2571.      non  quadratic  image  without  specifying width and height.
  2572.      The maxval is assumed to be 255.
  2573.  
  2574. 2 Options
  2575.      -headerskip
  2576.           If the file has a header, you can use this flag to skip
  2577.           over it.
  2578.  
  2579.      -rowskip
  2580.           If there is padding at the ends of the  rows,  you  can
  2581.           skip  it  with  this  flag.  Note that rowskip can be a
  2582.           real number.  Amazingly, I once had an image with 0.376
  2583.           bytes of padding per row.  This turned out to be due to
  2584.           a file-transfer problem, but I was still able  to  read
  2585.           the image.
  2586.  
  2587.      -tb -topbottom
  2588.           Flips the image upside down.  The first pixel in a  pgm
  2589.           file  is  in  the  lower left corner of the image.  For
  2590.           conversion from images with  the  first  pixel  in  the
  2591.           upper  left  corner  (e.g.  the  Molecular Dynamics and
  2592.           Leica confocal formats) this  flips  the  image  right.
  2593.           This is equivalent to rawtopgm [file] | pnmflip -tb .
  2594.  
  2595. 2 Bugs
  2596.      If you don't specify the image width and height, the program
  2597.      will try to read the entire image to a memory buffer. If you
  2598.      get a message that states that you are out of memory, try to
  2599.      specify  the width and height on the command line. Also, the
  2600.      -tb option consumes much memory.
  2601.  
  2602. 2 See_Also
  2603.      pgm, rawtoppm, pnmflip
  2604.  
  2605. 2 Authors
  2606.      Copyright (C) 1989 by Jef Poskanzer.
  2607.      Modified June 1993 by Oliver Trepte, oliver@fysik4.kth.se
  2608.  
  2609. 1 pnmarith              
  2610.      pnmarith - perform arithmetic on two portable anymaps
  2611.  
  2612. 2 Synopsis
  2613.      pnmarith -add|-subtract|-multiply| pnmfile1 pnmfile2
  2614.  
  2615. 2 Description
  2616.      Reads two portable anymaps as input.  Performs the specified
  2617.      arithmetic operation, and produces a portable anymap as out-
  2618.      put.  The two input anymaps  must  be  the  same  width  and
  2619.      height.
  2620.  
  2621.      The arithmetic is performed between corresponding pixels  in
  2622.      the  two anymaps, as if maxval was 1.0, black was 0.0, and a
  2623.      linear scale in  between.   Results  that  fall  outside  of
  2624.      [0..1) are truncated.
  2625.  
  2626.      The operator -difference calculates the  absolute  value  of
  2627.      pnmarith  -subtract pnmfile1 pnmfile2, i.e. no truncation is
  2628.      done.
  2629.  
  2630.      All flags can be abbreviated to their shortest  unique  pre-
  2631.      fix.
  2632.  
  2633. 2 See_Also
  2634.      pbmmask, pnmpaste, pnminvert, pnm
  2635.  
  2636. 2 Author
  2637.      Copyright (C) 1989, 1991 by Jef Poskanzer.  Lightly modified
  2638.      by Marcel Wijkstra <wijkstra@fwi.uva.nl>
  2639.  
  2640. 1 pnmcat                
  2641.      pnmcat - concatenate portable anymaps
  2642.  
  2643. 2 Synopsis
  2644.      pnmcat   [-white|-black]   -leftright|-lr   [-jtop|-jbottom]
  2645.      pnmfile pnmfile ...
  2646.      pnmcat   [-white|-black]   -topbottom|-tb   [-jleft|-jright]
  2647.      pnmfile pnmfile ...
  2648.  
  2649. 2 Description
  2650.      Reads portable anymaps as input.  Concatenates  them  either
  2651.      left  to  right  or  top  to bottom, and produces a portable
  2652.      anymap as output.
  2653.  
  2654. 2 Options
  2655.      If the anymaps are not all the same height  (left-right)  or
  2656.      width  (top-bottom),  the  smaller ones have to be justified
  2657.      with the largest.  By default, they get  centered,  but  you
  2658.      can specify one side or the other with one of the -j* flags.
  2659.      So, -topbottom -jleft would stack the anymaps on top of each
  2660.      other, flush with the left edge.
  2661.  
  2662.      The -white and -black flags specify what  color  to  use  to
  2663.      fill  in  the extra space when doing this justification.  If
  2664.      neither is specified, the program makes a guess.
  2665.  
  2666.      All flags can be abbreviated to their shortest  unique  pre-
  2667.      fix.
  2668.  
  2669. 2 See_Also
  2670.      pnm
  2671.  
  2672. 2 Author
  2673.      Copyright (C) 1989 by Jef Poskanzer.
  2674.  
  2675. 1 pnmcomp
  2676.      pnmcomp - composite two portable anymap files together
  2677.  
  2678. 2 Synopsis
  2679.      pnmcomp [-invert] [-xoffN] [-yoffN] [-alphapgmfile]  overlay
  2680.      [pnm-input] [pnm-output]
  2681.  
  2682. 2 Description
  2683.      Reads in a portable any map image and put a overlay upon it,
  2684.      with  optional alpha mask.  The -alpha pgmfile allows you to
  2685.      also add an alpha mask file to the compositing process,  the
  2686.      range  of  max  and  min can be swapped by using the -invert
  2687.      option.  The -xoff and  -yoff  arguments  can  be  negative,
  2688.      allowing  you to shift the overlay off the top corner of the
  2689.      screen.
  2690.  
  2691. 2 See_Also
  2692.      pnm
  2693.  
  2694. 2 Author
  2695.      Copyright (C) 1992 by David Koblas (koblas@mips.com).
  2696.  
  2697. 1 pnmconvol             
  2698.      pnmconvol - general MxN convolution on a portable anymap
  2699.  
  2700. 2 Synopsis
  2701.      pnmconvol convolutionfile [pnmfile]
  2702.  
  2703. 2 Description
  2704.      Reads two portable anymaps as input.  Convolves  the  second
  2705.      using the first, and writes a portable anymap as output.
  2706.  
  2707.      Convolution means replacing each pixel with a weighted aver-
  2708.      age of the nearby pixels.  The weights and the area to aver-
  2709.      age are determined by the convolution matrix.  The  unsigned
  2710.      numbers  in  the convolution file are offset by -maxval/2 to
  2711.      make signed numbers, and  then  normalized,  so  the  actual
  2712.      values in the convolution file are only relative.
  2713.  
  2714.      Here is a sample convolution file; it does a simple  average
  2715.      of  the  nine  immediate  neighbors, resulting in a smoothed
  2716.      image:
  2717.          P2
  2718.          3 3
  2719.          18
  2720.          10 10 10
  2721.          10 10 10
  2722.          10 10 10
  2723.  
  2724.      To see how this works, do the above-mentioned offset:  10  -
  2725.      18/2 gives 1.  The possible range of values is from 0 to 18,
  2726.      and after the offset that's -9 to 9.  The normalization step
  2727.      makes  the  range  -1  to  1,  and  the  values  get  scaled
  2728.      correspondingly so they become 1/9 - exactly what you  want.
  2729.      The equivalent matrix for 5x5 smoothing would have maxval 50
  2730.      and be filled with 26.
  2731.  
  2732.      The convolution file will usually be a graymap, so that  the
  2733.      same convolution gets applied to each color component.  How-
  2734.      ever, if you want to use a pixmap and do a different  convo-
  2735.      lution to different colors, you can certainly do that.
  2736.  
  2737. 2 See_Also
  2738.      pnmsmooth, pnm
  2739.  
  2740. 2 Author
  2741.      Copyright (C) 1989, 1991 by Jef Poskanzer.
  2742.  
  2743. 1 pnmcrop               
  2744.      pnmcrop - crop a portable anymap
  2745.  
  2746. 2 Synopsis
  2747.      pnmcrop [-white|-black] [pnmfile]
  2748.  
  2749. 2 Description
  2750.      Reads a portable anymap as input.  Removes  edges  that  are
  2751.      the background color, and produces a portable anymap as out-
  2752.      put.
  2753.  
  2754. 2 Options
  2755.      By default, it makes a guess as to what the background color
  2756.      is.  You can override the default with the -white and -black
  2757.      flags.
  2758.  
  2759.      All flags can be abbreviated to their shortest  unique  pre-
  2760.      fix.
  2761.  
  2762. 2 See_Also
  2763.      pnmcut, pnm
  2764.  
  2765. 2 Author
  2766.      Copyright (C) 1989 by Jef Poskanzer.
  2767.  
  2768. 1 pnmcut                
  2769.      pnmcut - cut a rectangle out of a portable anymap
  2770.  
  2771. 2 Synopsis
  2772.      pnmcut x y width height [pnmfile]
  2773.  
  2774. 2 Description
  2775.      Reads a portable anymap as input.   Extracts  the  specified
  2776.      rectangle,  and produces a portable anymap as output.  The x
  2777.      and y can be negative, in which case  they  are  interpreted
  2778.      relative  to  the  right  and  bottom of the anymap, respec-
  2779.      tively.
  2780.  
  2781. 2 See_Also
  2782.      pnm
  2783.  
  2784. 2 Author
  2785.      Copyright (C) 1989 by Jef Poskanzer.
  2786.  
  2787. 1 pnmdepth              
  2788.      pnmdepth - change the maxval in a portable anymap
  2789.  
  2790. 2 Synopsis
  2791.      pnmdepth newmaxval [pnmfile]
  2792.  
  2793. 2 Description
  2794.      Reads a portable anymap as  input.   Scales  all  the  pixel
  2795.      values, and writes out the image with the new maxval.  Scal-
  2796.      ing the colors down to a smaller maxval will result in  some
  2797.      loss of information.
  2798.  
  2799.      Be careful of off-by-one errors when choosing the  new  max-
  2800.      val.   For instance, if you want the color values to be five
  2801.      bits wide, use a maxval of 31, not 32.
  2802.  
  2803. 2 See_Also
  2804.      pnm, ppmquant, ppmdither
  2805.  
  2806. 2 Author
  2807.      Copyright (C) 1989, 1991 by Jef Poskanzer.
  2808.  
  2809. 1 pnmenlarge            
  2810.      pnmenlarge - read a portable anymap and enlarge it N times
  2811.  
  2812. 2 Synopsis
  2813.      pnmenlarge N [pnmfile]
  2814.  
  2815. 2 Description
  2816.      Reads a portable anymap as input.  Replicates its  pixels  N
  2817.      times, and produces a portable anymap as output.
  2818.  
  2819.      pnmenlarge can only enlarge by integer factors.  The  slower
  2820.      but more general pnmscale can enlarge or reduce by arbitrary
  2821.      factors, and pbmreduce can reduce by  integer  factors,  but
  2822.      only for bitmaps.
  2823.  
  2824.      If you enlarge by a factor of 3 or more, you should probably
  2825.      add  a  pnmsmooth  step; otherwise, you can see the original
  2826.      pixels in the resulting image.
  2827.  
  2828. 2 See_Also
  2829.      pbmreduce, pnmscale, pnmsmooth, pnm
  2830.  
  2831. 2 Author
  2832.      Copyright (C) 1989 by Jef Poskanzer.
  2833.  
  2834. 1 pnmfile               
  2835.      pnmfile - describe a portable anymap
  2836.  
  2837. 2 Synopsis
  2838.      pnmfile [pnmfile] ...
  2839.  
  2840. 2 Description
  2841.      Reads one or more portable anymaps  as  input.   Writes  out
  2842.      short  descriptions  of  the image type, size, etc.  This is
  2843.      mostly for use in shell scripts, so the format is  not  par-
  2844.      ticularly pretty.
  2845.  
  2846. 2 See_Also
  2847.      pnm, file
  2848.  
  2849. 2 Author
  2850.      Copyright (C) 1991 by Jef Poskanzer.
  2851.  
  2852. 1 pnmflip               
  2853.      pnmflip - perform one or more flip operations on a  portable
  2854.      anymap
  2855.  
  2856. 2 Synopsis
  2857.      pnmflip [-leftright|-lr]  [-topbottom|-tb]  [-transpose|-xy]
  2858.      [-rotate90|-r90|-ccw    ]    [-rotate270|-r270|-cw    ]   [-
  2859.      rotate180|-r180] [pnmfile]
  2860.  
  2861. 2 Description
  2862.      Reads a portable anymap as input.  Performs one or more flip
  2863.      operations,  in  the order specified, and writes out a port-
  2864.      able anymap.
  2865.  
  2866. 2 Options
  2867.      The  flip  operations  available  are:  left  for  right  (-
  2868.      leftright  or  -lr); top for bottom (-topbottom or -tb); and
  2869.      transposition (-transpose or -xy).  In addition, some canned
  2870.      concatenations   are   available:   -rotate90   or  -ccw  is
  2871.      equivalent to -transpose -topbottom; -rotate270  or  -cw  is
  2872.      equivalent  to  -transpose  -leftright;  and  -rotate180  is
  2873.      equivalent to -leftright -topbottom.
  2874.  
  2875.      All flags can be abbreviated to their shortest  unique  pre-
  2876.      fix.
  2877.  
  2878. 2 See_Also
  2879.      pnmrotate, pnm
  2880.  
  2881. 2 Author
  2882.      Copyright (C) 1989 by Jef Poskanzer.
  2883.  
  2884. 1 pnminvert             
  2885.      pnminvert - invert a portable anymap
  2886.  
  2887. 2 Synopsis
  2888.      pnminvert [pnmfile]
  2889.  
  2890. 2 Description
  2891.      Reads a portable anymap as  input.   Inverts  it  black  for
  2892.      white and produces a portable anymap as output.
  2893.  
  2894. 2 See_Also
  2895.      pnm
  2896.  
  2897. 2 Author
  2898.      Copyright (C) 1989 by Jef Poskanzer.
  2899.  
  2900. 1 pnmnoraw              
  2901.      pnmnoraw - force a portable anymap into plain format
  2902.  
  2903. 2 Synopsis
  2904.      pnmnoraw [pnmfile]
  2905.  
  2906. 2 Description
  2907.      Reads a portable anymap as input.  Writes it  out  in  plain
  2908.      (non-raw)  format.   This  is  fairly useless if you haven't
  2909.      defined the PBMPLUSAWBITS compile-time option.
  2910.  
  2911. 2 See_Also
  2912.      pnm
  2913.  
  2914. 2 Author
  2915.      Copyright (C) 1991 by Jef Poskanzer.
  2916.  
  2917. 1 pnmpad
  2918.      pnmpad - add borders to portable anymap
  2919.  
  2920. 2 Synopsis
  2921.      pnmpad [-white|-black] [-l#] [-r#] [-t#] [-b#] [pnmfile]
  2922.  
  2923. 2 Description
  2924.      Reads a portable anymap as input. Outputs a portable  anymap
  2925.      with extra borders of the sizes specified. The colour of the
  2926.      borders can be set to black or white (default black).
  2927.  
  2928.  
  2929. 2 See_Also
  2930.      pbmmake, pnmpaste, pbm
  2931.  
  2932. 2 Author
  2933.      Copyright (C) 1990 by Angus Duggan Copyright (C) 1989 by Jef
  2934.      Poskanzer.
  2935.  
  2936.      Permission  to  use,  copy,  modify,  and  distribute   this
  2937.      software  and  its documentation for any purpose and without
  2938.      fee is hereby granted, provided  that  the  above  copyright
  2939.      notice  appear  in  all  copies and that both that copyright
  2940.      notice and this permission notice appear in supporting docu-
  2941.      mentation.   This  software  is  provided  "as  is"  without
  2942.      express or implied warranty.
  2943.  
  2944. 1 pnmpaste              
  2945.      pnmpaste - paste a rectangle into a portable anymap
  2946.  
  2947. 2 Synopsis
  2948.      pnmpaste   [-replace|-or|-and   |-xor]   frompnmfile   x   y
  2949.      [intopnmfile]
  2950.  
  2951. 2 Description
  2952.      Reads two portable anymaps  as  input.   Inserts  the  first
  2953.      anymap  into  the second at the specified location, and pro-
  2954.      duces a portable anymap the same size as the second as  out-
  2955.      put.  If the second anymap is not specified, it is read from
  2956.      stdin.  The x and y can be negative, in which case they  are
  2957.      interpreted  relative to the right and bottom of the anymap,
  2958.      respectively.
  2959.  
  2960.      This tool is most useful in combination  with  pnmcut.   For
  2961.      instance,  if  you  want  to edit a small segment of a large
  2962.      image, and your image editor cannot edit  the  large  image,
  2963.      you  can cut out the segment you are interested in, edit it,
  2964.      and then paste it back in.
  2965.  
  2966.      Another useful companion tool is pbmmask.
  2967.  
  2968.      The optional flag specifies the operation to use when  doing
  2969.      the  paste.   The  default  is -replace.  The other, logical
  2970.      operations are only allowed if both input  images  are  bit-
  2971.      maps.  These operations act as if white is TRUE and black is
  2972.      FALSE.
  2973.  
  2974.      All flags can be abbreviated to their shortest  unique  pre-
  2975.      fix.
  2976.  
  2977. 2 See_Also
  2978.      pnmcut, pnminvert, pnmarith, pnm, pbmmask
  2979.  
  2980. 2 Author
  2981.      Copyright (C) 1989, 1991 by Jef Poskanzer.
  2982.  
  2983. 1 pnmscale              
  2984.      pnmscale - scale a portable anymap
  2985.  
  2986. 2 Synopsis
  2987.      pnmscale s [pnmfile]
  2988.      pnmscale -xsize|-width|-ysize| -height s [pnmfile]
  2989.      pnmscale -xscale|-yscale s [pnmfile]
  2990.      pnmscale -xscale|-xsize|-width  s  -yscale|-ysize|-height  s
  2991.      [pnmfile]
  2992.      pnmscale -xysize x y [pnmfile]
  2993.  
  2994. 2 Description
  2995.      Reads a portable anymap as input.  Scales it by  the  speci-
  2996.      fied  factor  or  factors  and produces a portable anymap as
  2997.      output.  If the input file is in color, the output  will  be
  2998.      too,  otherwise  it will be grayscale.  You can both enlarge
  2999.      (scale factor > 1) and reduce (scale factor < 1).
  3000.  
  3001.      You can specify one dimension as a pixel size, and the other
  3002.      dimension will be scaled correspondingly.
  3003.  
  3004.      You can specify one dimension as  a  scale,  and  the  other
  3005.      dimension will not be scaled.
  3006.  
  3007.      You can specify different sizes or scales for each axis.
  3008.  
  3009.      Or, you can use the special -xysize  flag,  which  fits  the
  3010.      image  into  the  specified size without changing the aspect
  3011.      ratio.
  3012.  
  3013.      All flags can be abbreviated to their shortest  unique  pre-
  3014.      fix.
  3015.  
  3016.      If you enlarge by a factor of 3 or more, you should probably
  3017.      add  a  pnmsmooth  step; otherwise, you can see the original
  3018.      pixels in the resulting image.
  3019.  
  3020. 2 See_Also
  3021.      pbmreduce, pnmenlarge, pnmsmooth, pnm
  3022.  
  3023. 2 Author
  3024.      Copyright (C) 1989, 1991 by Jef Poskanzer.
  3025.  
  3026. 1 pnmtile               
  3027.      pnmtile - replicate a portable anymap into a specified size
  3028.  
  3029. 2 Synopsis
  3030.      pnmtile width height [pnmfile]
  3031.  
  3032. 2 Description
  3033.      Reads a portable anymap as input.  Replicates it until it is
  3034.      the  specified  size, and produces a portable anymap as out-
  3035.      put.
  3036.  
  3037. 2 See_Also
  3038.      pnm
  3039.  
  3040. 2 Author
  3041.      Copyright (C) 1989 by Jef Poskanzer.
  3042.  
  3043. 1 pnmtoddif
  3044.      pnmtoddif - Convert a portable anymap to DDIF format
  3045.  
  3046. 2 Synopis
  3047.      pnmtoddif pnmtoddif [-resolution x y] [pnmfile [ddiffile]]
  3048.  
  3049. 2 Description
  3050.      pnmtoddif takes a portable anymap from  standard  input  and
  3051.      converts it into a DDIF image file on standard output or the
  3052.      specified DDIF file.
  3053.  
  3054.      pbm format (bitmap) data is written as 1 bit DDIF, pgm  for-
  3055.      mat data (greyscale) as 8 bit greyscale DDIF, and ppm format
  3056.      data is written as 8,8,8 bit  color  DDIF.  All  DDIF  image
  3057.      files  are written as uncompressed. The data plane organiza-
  3058.      tion is interleaved by pixel.
  3059.  
  3060.      In addition to the number of pixels in the width and  height
  3061.      dimension, DDIF images also carry information about the size
  3062.      that the image should have, that is, the physical space that
  3063.      a  pixel occupies. PBMPLUS images do not carry this informa-
  3064.      tion, hence it has to be externally supplied.   The  default
  3065.      of  78  dpi  has  the  beneficial  property of not causing a
  3066.      resize on most Digital Equipment Corporation color monitors.
  3067.  
  3068. 2 Options
  3069.      resolution
  3070.           The horizontal and vertical resolution  of  the  output
  3071.           image in dots per inch. Defaults to 78 dpi.
  3072.  
  3073.      pnmfile        The filename for the image file in  pnm  for-
  3074.                     mat.   If  this argument is omitted, input is
  3075.                     read from stdin.
  3076.  
  3077.      ddiffile       The filename for the image file to be created
  3078.                     in DDIF format.  If this argument is omitted,
  3079.                     the ddiffile is written to  standard  output.
  3080.                     It  can  only  specified if a pnmfile is also
  3081.                     specified.
  3082.  
  3083. 2 Author
  3084.      Burkhard Neidecker-Lutz
  3085.      Digital Equipment Corporation, CEC Karlsruhe
  3086.      neideck@nestvx.enet.dec.com
  3087.  
  3088. 1 pnmtops               
  3089.      pnmtops - convert portable anymap to PostScript
  3090.  
  3091. 2 Synopsis
  3092.      pnmtops [-scale s] [-turn|-noturn]  [-rle|-runlength]  [-dpi
  3093.      n] [-width n] [-height n] [pnmfile]
  3094.  
  3095. 2 Description
  3096.      Reads a portable anymap  as  input.   Produces  Encapsulated
  3097.      PostScript as output.
  3098.  
  3099.      If the input file is in color (PPM), a color PostScript file
  3100.      gets  written.   Some  PostScript  interpreters can't handle
  3101.      color PostScript.  If you have one of these you will need to
  3102.      run your image through ppmtopgm first.
  3103.  
  3104.      Note that there is no pstopnm tool - this transformation  is
  3105.      one-way,  because  a  pstopnm  tool  would be a full-fledged
  3106.      PostScript interpreter, which is beyond the  scope  of  this
  3107.      package.   However,  see  the psidtopgm tool, which can read
  3108.      grayscale non-runlength PostScript  image  data.   Also,  if
  3109.      you're willing to install the fairly large GhostScript pack-
  3110.      age, it comes with a pstoppm script.
  3111.  
  3112. 2 Options
  3113.      The -scale flag controls  the  scale  of  the  result.   The
  3114.      default  scale  is 1, which on a 300 dpi printer such as the
  3115.      Apple LaserWriter makes the output look about the same  size
  3116.      as  the  input would if it was displayed on a typical 72 dpi
  3117.      screen.  To get one PNM pixel per 300 dpi printer pixel, use
  3118.      "-scale 0.25".
  3119.  
  3120.      The -turn and -noturn flags control whether the  image  gets
  3121.      turned  90  degrees.  Normally, if an image is wider than it
  3122.      is tall, it gets turned  automatically  to  better  fit  the
  3123.      page.   If the -turn flag is specified, it will be turned no
  3124.      matter what its shape; and if the -noturn flag is specified,
  3125.      it will not be turned no matter what its shape.
  3126.  
  3127.      The -rle or -runlength flag  specifies  run-length  compres-
  3128.      sion.   This  may  save  time if the host-to-printer link is
  3129.      slow; but normally the printer's processing time  dominates,
  3130.      so -rle makes things slower.
  3131.  
  3132.      The -dpi flag lets you specify the dots  per  inch  of  your
  3133.      output   device.    The  default  is  300  dpi.   In  theory
  3134.      PostScript is device-independent and you don't have to worry
  3135.      about  this,  but  in practice its raster rendering can have
  3136.      unsightly bands if the device pixels and  the  image  pixels
  3137.      aren't in sync.
  3138.  
  3139.      The -width and -height flags let you specify the size of the
  3140.      page.  The default is 8.5 inches by 11 inches.
  3141.  
  3142.      All flags can be abbreviated to their shortest  unique  pre-
  3143.      fix.
  3144.  
  3145. 2 See_Also
  3146.      pnm, psidtopgm
  3147.  
  3148. 2 Author
  3149.      Copyright (C) 1989, 1991 by Jef Poskanzer.
  3150.  
  3151. 1 pnmtorast             
  3152.      pnmtorast - convert a portable pixmap into a Sun rasterfile
  3153.  
  3154. 2 Synopsis
  3155.      pnmtorast [-standard|-rle] [pnmfile]
  3156.  
  3157. 2 Description
  3158.      Reads a portable pixmap as input.  Produces a Sun rasterfile
  3159.      as output.
  3160.  
  3161.      Color values in Sun rasterfiles  are  eight  bits  wide,  so
  3162.      pnmtorast  will  automatically scale colors to have a maxval
  3163.      of 255.  An extra pnmdepth step is not necessary.
  3164.  
  3165. 2 Options
  3166.      The -standard flag forces the result to  be  in  RT_STANDARD
  3167.      form;  the -rle flag, RT_BYTE_ENCODED, which is smaller but,
  3168.      well, less standard.  The default is -rle.
  3169.  
  3170.      All flags can be abbreviated to their shortest  unique  pre-
  3171.      fix.
  3172.  
  3173. 2 See_Also
  3174.      rasttopnm, pnm
  3175.  
  3176. 2 Author
  3177.      Copyright (C) 1989, 1991 by Jef Poskanzer.
  3178.  
  3179. 1 pnmtoxwd              
  3180.      pnmtoxwd - convert a portable anymap into an X11 window dump
  3181.  
  3182. 2 Synopsis
  3183.      pnmtoxwd [-pseudodepth n] [-directcolor] [pnmfile]
  3184.  
  3185. 2 Description
  3186.      Reads a portable anymap as input.  Produces  an  X11  window
  3187.      dump as output.  This window dump can be displayed using the
  3188.      xwud tool.
  3189.  
  3190.      Normally, pnmtoxwd produces a StaticGray dump file  for  pbm
  3191.      and  pgm  files.  For ppm, it writes a PseudoColor dump file
  3192.      if  there  are  up  to  256  colors  in  the  input,  and  a
  3193.      DirectColor  dump file otherwise.  The -directcolor flag can
  3194.      be used to force a DirectColor dump.  And  the  -pseudodepth
  3195.      flag  can  be  used to change the depth of PseudoColor dumps
  3196.      from the default of 8 bits / 256 colors.
  3197.  
  3198. 2 See_Also
  3199.      xwdtopnm, pnm, xwud
  3200.  
  3201. 2 Author
  3202.      Copyright (C) 1989, 1991 by Jef Poskanzer.
  3203.  
  3204. 1 rasttopnm             
  3205.      rasttopnm - convert a Sun rasterfile into a portable anymap
  3206.  
  3207. 2 Synopsis
  3208.      rasttopnm [rastfile]
  3209.  
  3210. 2 Description
  3211.      Reads a Sun rasterfile as input.  Produces a portable anymap
  3212.      as output.  The type of the output file depends on the input
  3213.      file - if it's black & white, a pbm file is written, else if
  3214.      it's  grayscale  a  pgm  file, else a ppm file.  The program
  3215.      tells you which type it is writing.
  3216.  
  3217. 2 See_Also
  3218.      pnmtorast, pnm
  3219.  
  3220. 2 Author
  3221.      Copyright (C) 1989, 1991 by Jef Poskanzer.
  3222.  
  3223. 1 xwdtopnm              
  3224.      xwdtopnm - convert a X11 or X10  window  dump  file  into  a
  3225.      portable anymap
  3226.  
  3227. 2 Synopsis
  3228.      xwdtopnm [xwdfile]
  3229.  
  3230. 2 Description
  3231.      Reads a X11 or X10 window dump file as  input.   Produces  a
  3232.      portable  anymap  as  output.   The  type of the output file
  3233.      depends on the input file - if it's black  &  white,  a  pbm
  3234.      file  is  written, else if it's grayscale a pgm file, else a
  3235.      ppm file.  The program tells you which type it is writing.
  3236.  
  3237.      Using this  program,  you  can  convert  anything  on  an  X
  3238.      workstation's  screen into an anymap.  Just display whatever
  3239.      you're interested in, do an xwd, run  it  through  xwdtopnm,
  3240.      and then use pnmcut to select the part you want.
  3241.  
  3242. 2 Bugs
  3243.      I haven't tested this tool with very many configurations, so
  3244.      there  are  probably  bugs.   Please let me know if you find
  3245.      any.
  3246.  
  3247. 2 See_Also
  3248.      pnmtoxwd, pnm, xwd
  3249.  
  3250. 2 Author
  3251.      Copyright (C) 1989, 1991 by Jef Poskanzer.
  3252.  
  3253. 1 zeisstopnm            
  3254.      zeisstopnm - convert a Zeiss confocal file into  a  portable
  3255.      anymap
  3256.  
  3257. 2 Synopsis
  3258.      zeisstopnm [-pgm | -ppm] [zeissfile]
  3259.  
  3260. 2 Description
  3261.      Reads a Zeiss confocal file as input.  Produces  a  portable
  3262.      anymap  as  output.   The type of the output file depends on
  3263.      the input file - if it's grayscale a pgm file,  else  a  ppm
  3264.      file  will be produced.  The program tells you which type it
  3265.      is writing.
  3266.  
  3267. 2 Options
  3268.      -pgm Force the output to be a pgm file.
  3269.  
  3270.      -ppm Force the output to be a ppm file.
  3271.  
  3272. 2 See_Also
  3273.      pnm
  3274.  
  3275. 2 Author
  3276.      Copyright (C) 1993 by Oliver Trepte
  3277.  
  3278. 1 pnmgamma              
  3279.      pnmgamma - perform gamma correction on a portable anymap
  3280.  
  3281. 2 Synopsis
  3282.      pnmgamma value [pnmfile]
  3283.      pnmgamma redvalue greenvalue bluevalue [pnmfile]
  3284.  
  3285. 2 Description
  3286.      Reads a portable anymap as input.   Performs  gamma  correc-
  3287.      tion, and produces a portable anymap as output.
  3288.  
  3289.      The arguments specify what gamma value(s) to use.   A  value
  3290.      of 1.0 leaves the image alone, less than one darkens it, and
  3291.      greater than one lightens it.
  3292.  
  3293. 2 See_Also
  3294.      pnm
  3295.  
  3296. 2 Author
  3297.      Copyright (C) 1991 by Bill Davidson and Jef Poskanzer.
  3298.  
  3299. 1 pnmhistmap
  3300.      pnmhistmap - draw a histogram for a PGM or PPM file
  3301.  
  3302. 2 Synopsis
  3303.      pnmhistmap [-black] [-white] [-max N] [-verbose] [pnmfile]
  3304.  
  3305. 2 Description
  3306.      Reads a portable anymap  as  input,  although  bitmap  (PBM)
  3307.      input  produces  an error message and no image.  Produces an
  3308.      image showing a histogram of the color (or gray)  values  in
  3309.      the  input.  A graymap (PGM) input produces a bitmap output.
  3310.      A pixmap (PPM) input produces pixmap output with three over-
  3311.      laid  histograms:  a  red one for the red input, a green one
  3312.      for the green input, and a blue one for the blue input.  The
  3313.      output is fixed in size: 256 pixels wide by 200 pixels high.
  3314.  
  3315. 2 Options
  3316.      -black
  3317.           Ignores the count of black pixels when scaling the his-
  3318.           togram.
  3319.  
  3320.      -white
  3321.           Ignores the count of white pixels when scaling the his-
  3322.           togram.
  3323.  
  3324.      The -black and -white options, which can be used  seperately
  3325.      or  together,  are useful for images with a large percentage
  3326.      of pixels whose value is zero or 255, which  can  cause  the
  3327.      remaining  histogram  data to become unreadbaly small.  Note
  3328.      that, for pixmap inputs, these options apply to all  colors;
  3329.      if,  for example, the input has a large number of bright-red
  3330.      areas, you will probably want to use the -white option.
  3331.  
  3332.      -max N
  3333.           Force the scaling of the histogram  to  use  N  as  the
  3334.           largest-count  value.  This is useful for inputs with a
  3335.           large percentage of single-color pixels which  are  not
  3336.           black or white.
  3337.  
  3338.      -verbose
  3339.           Report the progress of making the histogram,  including
  3340.           the largest-count value used to scale the output.
  3341.  
  3342.      All flags can be abbreviated to their shortest  unique  pre-
  3343.      fix.
  3344.  
  3345. 2 Bugs
  3346.      Assumes maxval is always 255.  Images with a smaller  maxval
  3347.      will  only  use the lower-value side of the histogram.  This
  3348.      can be overcome either by piping the input through "pnmdepth
  3349.      255"  or  by cutting and scaling the lower-value side of the
  3350.      histogram.  Neither is a particularly elegant solution.
  3351.      Should allow the output size to be specified.
  3352.  
  3353. 2 See_Also
  3354.      pgmhist(1), ppmhist(1), pgm(5), ppm(5)
  3355.  
  3356. 2 Author
  3357.      Wilson H. Bent. Jr. (whb@usc.edu).
  3358.  
  3359. 1 pnmnlfilt             
  3360.      pnmnlfilt - non-linear filters:  smooth,  alpha  trim  mean,
  3361.      optimal estimation smoothing, edge enhancement.
  3362.  
  3363. 2 Synopsis
  3364.      pnmnlfilt alpha radius [pnmfile]
  3365.  
  3366. 2 Description
  3367.      This is something of a swiss army knife  filter.  It  has  3
  3368.      distinct  operating modes. In all of the modes each pixel in
  3369.      the image is examined and processed according to it and  its
  3370.      surrounding pixels values. Rather than using the 9 pixels in
  3371.      a 3x3 block, 7 hexagonal area samples are taken, the size of
  3372.      the  hexagons  being  controlled  by the radius parameter. A
  3373.      radius value of 0.3333 means that the 7 hexagons exactly fit
  3374.      into  the  center  pixel  (ie.   there  will be no filtering
  3375.      effect). A radius value of 1.0 means  that  the  7  hexagons
  3376.      exactly fit a 3x3 pixel array.
  3377.  
  3378.         Alpha trimmed mean filter.    (0.0 <= alpha
  3379.      The value of the center pixel will be replaced by  the  mean
  3380.      of the 7 hexagon values, but the 7 values are sorted by size
  3381.      and the top and bottom alpha portion of the 7  are  excluded
  3382.      from  the  mean.   This  implies  that an alpha value of 0.0
  3383.      gives the same sort of output as a normal  convolution  (ie.
  3384.      averaging  or smoothing filter), where radius will determine
  3385.      the "strength" of the filter. A good value to start from for
  3386.      subtle  filtering  is  alpha = 0.0, radius = 0.55 For a more
  3387.      blatant effect, try alpha 0.0 and radius 1.0
  3388.  
  3389.      An alpha value of 0.5 will cause the median value of  the  7
  3390.      hexagons  to be used to replace the center pixel value. This
  3391.      sort of filter is good for eliminating "pop" or single pixel
  3392.      noise  from  an  image  without  spreading  the noise out or
  3393.      smudging features on the image. Judicious use of the  radius
  3394.      parameter  will fine tune the filtering. Intermediate values
  3395.      of alpha give effects somewhere between smoothing and  "pop"
  3396.      noise  reduction.  For  subtle  filtering  try starting with
  3397.      values of alpha = 0.4, radius =  0.6   For  a  more  blatant
  3398.      effect try alpha = 0.5, radius = 1.0
  3399.  
  3400.         Optimal estimation smoothing. (1.0 <= alpha
  3401.      This type of filter applies a  smoothing  filter  adaptively
  3402.      over  the  image.   For  each pixel the variance of the sur-
  3403.      rounding hexagon values is calculated,  and  the  amount  of
  3404.      smoothing  is made inversely proportional to it. The idea is
  3405.      that if the variance is small then it is due to noise in the
  3406.      image,  while  if  the  variance  is large, it is because of
  3407.      "wanted" image features. As usual the radius parameter  con-
  3408.      trols  the  effective  radius,  but it probably advisable to
  3409.      leave the radius between 0.8 and 1.0 for the variance calcu-
  3410.      lation to be meaningful.  The alpha parameter sets the noise
  3411.      threshold, over which less smoothing  will  be  done.   This
  3412.      means  that  small values of alpha will give the most subtle
  3413.      filtering effect, while large values will tend to smooth all
  3414.      parts of the image. You could start with values like alpha =
  3415.      1.2, radius = 1.0 and try increasing or decreasing the alpha
  3416.      parameter  to get the desired effect. This type of filter is
  3417.      best for filtering out dithering noise in  both  bitmap  and
  3418.      color images.
  3419.  
  3420.         Edge enhancement. (-0.1 >= alpha >=
  3421.      This is the opposite type of filter to the smoothing filter.
  3422.      It  enhances  edges. The alpha parameter controls the amount
  3423.      of edge enhancement, from subtle (-0.1) to  blatant  (-0.9).
  3424.      The radius parameter controls the effective radius as usual,
  3425.      but useful values are between 0.5 and 0.9. Try starting with
  3426.      values of alpha = 0.3, radius = 0.8
  3427.  
  3428.         Combination use.
  3429.      The various modes of pnmnlfilt can be  used  one  after  the
  3430.      other  to  get  the  desired  result. For instance to turn a
  3431.      monochrome dithered image into a grayscale image  you  could
  3432.      try one or two passes of the smoothing filter, followed by a
  3433.      pass of the optimal estimation filter, then some subtle edge
  3434.      enhancement. Note that using edge enhancement is only likely
  3435.      to be useful after one  of  the  non-linear  filters  (alpha
  3436.      trimmed mean or optimal estimation filter), as edge enhance-
  3437.      ment is the direct opposite of smoothing.
  3438.  
  3439.      For reducing color quantization noise in images (ie. turning
  3440.      .gif  files  back into 24 bit files) you could try a pass of
  3441.      the optimal estimation filter (alpha  1.2,  radius  1.0),  a
  3442.      pass of the median filter (alpha 0.5, radius 0.55), and pos-
  3443.      sibly a pass of the edge enhancement filter.  Several passes
  3444.      of the optimal estimation filter with declining alpha values
  3445.      are more effective than a single pass  with  a  large  alpha
  3446.      value.   As  usual,  there  is  a tradeoff between filtering
  3447.      effectiveness  and  loosing   detail.   Experimentation   is
  3448.      encouraged.
  3449.  
  3450. 2 References
  3451.      The alpha-trimmed mean filter is based on the description in
  3452.      IEEE  CG&A  May  1990  Page 23 by Mark E. Lee and Richard A.
  3453.      Redner, and has been  enhanced  to  allow  continuous  alpha
  3454.      adjustment.
  3455.  
  3456.      The optimal estimation filter is taken from an article "Con-
  3457.      verting  Dithered  Images  Back  to  Gray  Scale"  by  Allen
  3458.      Stenger, Dr Dobb's Journal, November 1992, and this  article
  3459.      references "Digital Image Enhancement and Noise Filtering by
  3460.      Use of Local Statistics", Jong-Sen Lee, IEEE Transactions on
  3461.      Pattern Analysis and Machine Intelligence, March 1980.
  3462.      The edge enhancement details are from  pgmenhance,  which
  3463.      is  taken  from Philip R. Thompson's "xim" program, which in
  3464.      turn took it from section 6 of  "Digital  Halftones  by  Dot
  3465.      Diffusion", D. E. Knuth, ACM Transaction on Graphics Vol. 6,
  3466.      No. 4, October 1987, which in turn  got  it  from  two  1976
  3467.      papers by J. F. Jarvis et. al.
  3468.  
  3469. 2 See_Also
  3470.      pgmenhance, pnmconvol, pnm
  3471.  
  3472. 2 Bugs
  3473.      Integers and tables may overflow if PPM_MAXMAXVAL is greater
  3474.      than 255.
  3475.  
  3476. 2 Author
  3477.      Graeme W. Gill    graeme@labtam.oz.au
  3478.  
  3479. 1 pnmrotate             
  3480.      pnmrotate - rotate a portable anymap by some angle
  3481.  
  3482. 2 Synopsis
  3483.      pnmrotate [-noantialias] angle [pnmfile]
  3484.  
  3485. 2 Description
  3486.      Reads a portable anymap as input.  Rotates it by the  speci-
  3487.      fied angle and produces a portable anymap as output.  If the
  3488.      input file is in color, the output will be too, otherwise it
  3489.      will  be  grayscale.   The  angle  is  in  degrees (floating
  3490.      point), measured counter-clockwise.  It can be negative, but
  3491.      it  should  be  between  -90  and  90.   Also, for rotations
  3492.      greater than 45 degrees you may get better  results  if  you
  3493.      first use pnmflip to do a 90 degree rotation and then pnmro-
  3494.      tate less than 45 degrees back the other direction
  3495.  
  3496.      The rotation algorithm is Alan Paeth's  three-shear  method.
  3497.      Each  shear is implemented by looping over the source pixels
  3498.      and distributing fractions to each of the  destination  pix-
  3499.      els.   This has an "anti-aliasing" effect - it avoids jagged
  3500.      edges and similar artifacts.  However, it  also  means  that
  3501.      the  original  colors  or gray levels in the image are modi-
  3502.      fied.  If you need to keep precisely the same set of colors,
  3503.      you  can  use the -noantialias flag.  This does the shearing
  3504.      by moving pixels without changing their values.  If you want
  3505.      anti-aliasing  and  don't care about the precise colors, but
  3506.      still need a limited *number* of colors,  you  can  run  the
  3507.      result through ppmquant.
  3508.  
  3509.      All flags can be abbreviated to their shortest  unique  pre-
  3510.      fix.
  3511.  
  3512. 2 References
  3513.      "A Fast Algorithm  for  General  Raster  Rotation"  by  Alan
  3514.      Paeth, Graphics Interface '86, pp. 77-81.
  3515.  
  3516. 2 See_Also
  3517.      pnmshear, pnmflip, pnm, ppmquant
  3518.  
  3519. 2 Author
  3520.      Copyright (C) 1989, 1991 by Jef Poskanzer.
  3521.  
  3522. 1 pnmshear              
  3523.      pnmshear - shear a portable anymap by some angle
  3524.  
  3525. 2 Synopsis
  3526.      pnmshear [-noantialias] angle [pnmfile]
  3527.  
  3528. 2 Description
  3529.      Reads a portable anymap as input.  Shears it by  the  speci-
  3530.      fied angle and produces a portable anymap as output.  If the
  3531.      input file is in color, the output will be too, otherwise it
  3532.      will  be  grayscale.   The  angle  is  in  degrees (floating
  3533.      point), and measures this:
  3534.          +-------+  +-------+
  3535.          |       |  |\       \
  3536.          |  OLD  |  | \  NEW  \
  3537.          |       |  |an\       \
  3538.          +-------+  |gle+-------+
  3539.      If the angle is negative, it shears the other way:
  3540.          +-------+  |-an+-------+
  3541.          |       |  |gl/       /
  3542.          |  OLD  |  |e/  NEW  /
  3543.          |       |  |/       /
  3544.          +-------+  +-------+
  3545.      The angle should not get too close to  90  or  -90,  or  the
  3546.      resulting anymap will be unreasonably wide.
  3547.  
  3548.      The shearing is implemented by looping over the source  pix-
  3549.      els  and  distributing  fractions to each of the destination
  3550.      pixels.  This has an  "anti-aliasing"  effect  -  it  avoids
  3551.      jagged  edges and similar artifacts.  However, it also means
  3552.      that the original colors or gray levels  in  the  image  are
  3553.      modified.   If  you  need  to keep precisely the same set of
  3554.      colors, you can use the -noantialias flag.   This  does  the
  3555.      shearing by moving pixels without changing their values.  If
  3556.      you want anti-aliasing and  don't  care  about  the  precise
  3557.      colors, but still need a limited *number* of colors, you can
  3558.      run the result through ppmquant.
  3559.  
  3560.      All flags can be abbreviated to their shortest  unique  pre-
  3561.      fix.
  3562.  
  3563. 2 See_Also
  3564.      pnmrotate, pnmflip, pnm, ppmquant
  3565.  
  3566. 2 Author
  3567.      Copyright (C) 1989, 1991 by Jef Poskanzer.
  3568.  
  3569. 1 tifftopnm             
  3570.      tifftopnm - convert a TIFF file into a portable anymap
  3571.  
  3572. 2 Synopsis
  3573.      tifftopnm [-headerdump] tifffile
  3574.  
  3575. 2 Description
  3576.      Reads a TIFF file as input.  Produces a portable  anymap  as
  3577.      output.   The  type  of the output file depends on the input
  3578.      file - if it's black & white, a pbm file is written, else if
  3579.      it's  grayscale  a  pgm  file, else a ppm file.  The program
  3580.      tells you which type it is writing.
  3581.  
  3582. 2 Options
  3583.      -headerdump
  3584.           Dump TIFF file information to stderr.  This information
  3585.           may  be  useful in debugging TIFF file conversion prob-
  3586.           lems.
  3587.  
  3588.      All flags can be abbreviated to their shortest  unique  pre-
  3589.      fix.
  3590.  
  3591. 2 See_Also
  3592.      pnmtotiff, pnm
  3593.  
  3594. 2 Bugs
  3595.      This program is not self-contained.   To  use  it  you  must
  3596.      fetch  the TIFF Software package listed in the OTHER.SYSTEMS
  3597.      file and configure PBMPLUS to use  libtiff.   See  PBMPLUS's
  3598.      Makefile for details on this configuration.
  3599.  
  3600. 2 Author
  3601.      Derived by Jef Poskanzer from tif2ras.c, which is  Copyright
  3602.      (c)  1990  by  Sun  Microsystems,  Inc.   Author: Patrick J.
  3603.      Naughton (naughton@wind.sun.com).
  3604.  
  3605. 1 pnmtotiff             
  3606.      pnmtotiff - convert a a portable anymap into a TIFF file
  3607.  
  3608. 2 Synopsis
  3609.      pnmtotiff [-none|-packbits| -lzw|-g3|-g4] [-2d]  [-fill]  [-
  3610.      predictor n] [-msb2lsb|-lsb2msb] [-rowsperstrip n] [pnmfile]
  3611.  
  3612. 2 Description
  3613.      Reads a portable anymap as input.  Produces a TIFF  file  as
  3614.      output.
  3615.  
  3616. 2 Options
  3617.      By default, pnmtotiff creates a TIFF file with LZW  compres-
  3618.      sion.   This  is  your  best bet most of the time.  However,
  3619.      some TIFF readers can't deal with it.  If you  want  to  try
  3620.      another  compression  scheme or tweak some of the other even
  3621.      more obscure output options, there are a number of flags  to
  3622.      play with.
  3623.  
  3624.      The -none, -packbits, -lzw, -g3, and -g4 options are used to
  3625.      override  the default and set the compression scheme used in
  3626.      creating the output file.  The CCITT Group  3  and  Group  4
  3627.      compression  algorithms  can only be used with bilevel data.
  3628.      The -2d and -fill options are meaningful only with  Group  3
  3629.      compression:  -2d  requests  2-dimensional encoding, while -
  3630.      fill requests that each encoded scanline be zero-filled to a
  3631.      byte boundry.  The -predictor option is only meaningful with
  3632.      LZW compression: a predictor value of 2 causes each scanline
  3633.      of  the  output  image  to  undergo  horizontal differencing
  3634.      before it is encoded; a value of 1 forces each  scanline  to
  3635.      be  encoded  without  differencing.   By  default, pnmtotiff
  3636.      creates a TIFF file  with  msb-to-lsb  fill  order.   The  -
  3637.      msb2lsb  and  -lsb2msb  options  are  used  to  override the
  3638.      default and set the fill order used in  creating  the  file.
  3639.      The  -rowsperstrip  option  can be used to set the number of
  3640.      rows (scanlines) in each strip of data in the  output  file.
  3641.      By default, the output file has the number of rows per strip
  3642.      set to a value that will ensure each strip is no more than 8
  3643.      kilobytes long.
  3644.  
  3645. 2 Bugs
  3646.      This program is not self-contained.   To  use  it  you  must
  3647.      fetch  the TIFF Software package listed in the OTHER.SYSTEMS
  3648.      file and configure PBMPLUS to use  libtiff.   See  PBMPLUS's
  3649.      Makefile for details on this configuration.
  3650.  
  3651. 2 See_Also
  3652.      tifftopnm, pnm
  3653.  
  3654. 2 Author
  3655.      Derived by Jef Poskanzer from ras2tiff.c, which is Copyright
  3656.      (c)  1990  by  Sun  Microsystems,  Inc.   Author: Patrick J.
  3657.      Naughton (naughton@wind.sun.com).
  3658.  
  3659. 1 libpnm
  3660.      libpnm - functions to support portable anymap programs
  3661.  
  3662. 2 Synopsis
  3663.      #include <pnm.h>
  3664.      cc ... libpnm.a libppm.a libpgm.a libpbm.a
  3665.  
  3666.  
  3667. 2 Description
  3668.   TYPES AND CONSTANTS
  3669.      typedef ... xel;
  3670.      typedef ... xelval;
  3671.      #define PNM_MAXMAXVAL ...
  3672.      extern xelval pnm_pbmmaxval;
  3673.  
  3674.      Each xel contains three xelvals, each of which  should  con-
  3675.      tain   only   the   values   between  0  and  PNM_MAXMAXVAL.
  3676.      pnm_pbmmaxval is the maxval used when a PNM program reads  a
  3677.      PBM  file.   Normally it is 1; however, for some programs, a
  3678.      larger value gives better results.
  3679.  
  3680.   XEL MANIPULATIONS
  3681.      xelval PNM_GET1( xel x )
  3682.  
  3683.      This macro extracts a single value from  an  xel,  when  you
  3684.      know  it's  from  a  PBM  or PGM file.  When it's from a PPM
  3685.      file, use PPM_GETR(), PPM_GETG(), and PPM_GETB().
  3686.  
  3687.      void PNM_ASSIGN1( xel x, xelval v )
  3688.  
  3689.      This macro assigns a single value to an xel, when  you  know
  3690.      it's from a PBM or PGM file.  When it's from a PPM file, use
  3691.      PPM_ASSIGN().
  3692.  
  3693.      int PNM_EQUAL( xel x, xel y )
  3694.  
  3695.      This macro checks two xels for equality.
  3696.  
  3697.      int PNM_FORMAT_TYPE( int format )
  3698.  
  3699.      For distinguishing different file types.
  3700.  
  3701.   INITIALIZATION
  3702.      void pnm_init( int* argcP, char* argv[] )
  3703.  
  3704.      All PNM programs must call this routine.
  3705.  
  3706.   MEMORY MANAGEMENT
  3707.      xel** pnm_allocarray( int cols, int rows )
  3708.  
  3709.      Allocate an array of xels.
  3710.      xel* pnm_allocrow( int cols )
  3711.  
  3712.      Allocate a row of the given number of xels.
  3713.  
  3714.      void pnm_freearray( xel** xels, int rows )
  3715.  
  3716.      Free the array allocated  with  pnmllocarray()  containing
  3717.      the given number of rows.
  3718.  
  3719.      void pnm_freerow( xel* xelrow )
  3720.  
  3721.      Free a row of xels.
  3722.  
  3723.   READING FILES
  3724.      void pnm_readpnminit( FILE* fp, int* colsP, int* rowsP, xelval* maxvalP, int* formatP )
  3725.  
  3726.      Read the header from a PNM file, filling in the rows,  cols,
  3727.      maxval and format variables.
  3728.  
  3729.      void pnm_readpnmrow( FILE* fp, xel* xelrow, int cols, xelval maxval, int format )
  3730.  
  3731.      Read a row of xels into the xelrow array.  Format, cols, and
  3732.      maxval were filled in by pnm_readpnminit().
  3733.  
  3734.      xel** pnm_readpnm( FILE* fp, int* colsP, int* rowsP, xelval* maxvalP, int* formatP )
  3735.  
  3736.      Read an entire anymap file into memory, returning the  allo-
  3737.      cated  array and filling in the rows, cols, maxval, and for-
  3738.      mat variables.  This  function  combines  pnm_readpnminit(),
  3739.      pnm_allocarray()    and    pnm_readpnmrow().    Unlike   the
  3740.      equivalent functions in PBM, PGM, and PPM,  it  returns  the
  3741.      format so you can tell what type the file is.
  3742.  
  3743.   WRITING FILES
  3744.      void pnm_writepnminit( FILE* fp, int cols, int rows, xelval maxval, int format, int forceplain )
  3745.  
  3746.      Write the header for a portable  anymap  file.   Unlike  the
  3747.      equivalent  functions  in  PBM,  PGM,  and  PPM, you have to
  3748.      specify the output  type.   The  forceplain  flag  forces  a
  3749.      plain-format  file to be written, as opposed to a raw-format
  3750.      one.
  3751.  
  3752.      void pnm_writepnmrow( FILE* fp, xel* xelrow, int cols, xelval maxval, int format, int forceplain )
  3753.  
  3754.      Write a row from a portable anymap.
  3755.  
  3756.      void pnm_writepnm( FILE* fp, xel** xels, int cols, int rows, xelval maxval, int format, int forceplain )
  3757.  
  3758.      Write the header and all data for a portable  anymap.   This
  3759.      function combines pnm_writepnminit() and pnm_writepnmrow().
  3760.  
  3761.   FORMAT PROMOTION
  3762.      void pnm_promoteformatrow( xel* xelrow, int cols, xelval maxval, int format, xelval newmaxval, int newformat )
  3763.  
  3764.      Promote a row of xels from one maxval and format  to  a  new
  3765.      set.   Used  when  combining  multiple  anymaps of different
  3766.      types - just take the max of the maxvals and the max of  the
  3767.      formats, and promote them all to that.
  3768.  
  3769.      void pnm_promoteformat( xel** xels, int cols, int rows, xelval maxval, int format, xelval newmaxval, int newformat )
  3770.  
  3771.      Promote an entire anymap.
  3772.  
  3773.   XEL MANIPULATION
  3774.      xel pnm_whitexel( xelval maxval, int format )
  3775.      xel pnm_blackxel( xelval maxval, int format )
  3776.  
  3777.      Return a white or black xel for the given maxval and format.
  3778.  
  3779.      void pnm_invertxel( xel* x, xelval maxval, int format )
  3780.  
  3781.      Invert an xel.
  3782.  
  3783.      xel pnm_backgroundxelrow( xel* xelrow, int cols, xelval maxval, int format )
  3784.  
  3785.      Figure out an appropriate background xel based on this row.
  3786.  
  3787.      xel pnm_backgroundxel( xel** xels, int cols, int rows, xelval maxval, int format )
  3788.  
  3789.      Figure out a background xel based on an entire anymap.  This
  3790.      can do a slightly better job than pnm_backgroundxelrow().
  3791.  
  3792. 2 See_Also
  3793.      pbm, pgm, ppm
  3794.  
  3795. 2 Author
  3796.      Copyright (C) 1989, 1991 by Tony Hansen and Jef Poskanzer.
  3797.  
  3798. 1 pnm
  3799.      pnm - portable anymap file format
  3800.  
  3801. 2 Description
  3802.      The pnm programs operate on portable bitmaps, graymaps,  and
  3803.      pixmaps,  produced by the pbm, pgm, and ppm segments.  There
  3804.      is no file format associated with pnm itself.
  3805.  
  3806. 2 See_Also
  3807.     anytopnm,    rasttopnm,  tifftopnm,  xwdtopnm,  pnmtops,  pnmtorast,
  3808.     pnmtotiff, pnmtoxwd, pnmar- ith, pnmcat, pnmconvol, pnmcrop, pnmcut,
  3809.     pnmdepth,  pnmenlarge,    pnmfile,    pnmflip,  pnmgamma,  pnmindex,
  3810.     pnminvert,  pnmmargin,  pnmnoraw,   pnmpaste,  pnmrotate,  pnmscale,
  3811.     pnmshear, pnmsmooth, pnmtile, ppm, pgm, pbm
  3812.  
  3813. 2 Author
  3814.      Copyright (C) 1989, 1991 by Jef Poskanzer.
  3815. 1 bmptoppm
  3816.      bmptoppm - convert a BMP file into a portable pixmap
  3817.  
  3818. 2 Synopsis
  3819.      bmptoppm [bmpfile]
  3820.  
  3821. 2 Description
  3822.      Reads a Microsoft Windows or OS/2 BMP file as  input.   Pro-
  3823.      duces a portable pixmap as output.
  3824.  
  3825. 2 See_Also
  3826.      ppmtobmp, ppm
  3827.  
  3828. 2 Author
  3829.      Copyright (C) 1992 by David W. Sanderson.
  3830.  
  3831. 1 gouldtoppm
  3832.      gouldtoppm - convert Gould scanner file into a portable pix-
  3833.      map
  3834.  
  3835. 2 Synopsis
  3836.      gouldtoppm [gouldfile]
  3837.  
  3838. 2 Description
  3839.      Reads a file produced by the Gould scanner as  input.   Pro-
  3840.      duces a portable pixmap as output.
  3841.  
  3842. 2 See_Also
  3843.      ppm
  3844.  
  3845. 2 Author
  3846.      Copyright(C) 1990 by Stephen Paul Lesniewski
  3847.  
  3848. 1 ilbmtoppm
  3849.      ilbmtoppm - convert an ILBM file into a portable pixmap
  3850.  
  3851. 2 Synopsis
  3852.      ilbmtoppm [-verbose] [ILBMfile]
  3853.  
  3854. 2 Description
  3855.      Reads an IFF ILBM file as input.  Produces a portable pixmap
  3856.      as output.  Supported ILBM types are:
  3857.  
  3858.      Normal ILBMs with 1-16 planes.
  3859.  
  3860.      Amiga Extra-Halfbrite (EHB)
  3861.  
  3862.      Amiga Hold-and-modify (HAM) with 3-16 planes.
  3863.  
  3864.      24 bit.
  3865.  
  3866.      Color map (BMHD + CMAP chunk only, nPlanes = 0).
  3867.  
  3868.      Unofficial direct color.
  3869.           1-16 planes for each color component.
  3870.  
  3871.      Chunks used:
  3872.           BMHD, CMAP, CAMG (only HAM  &  EHB  flags  used),  BODY
  3873.           unofficial DCOL chunk to identify direct color ILBM
  3874.  
  3875.      Chunks ignored:
  3876.           GRAB, DEST, SPRT, CRNG, CCRT, CLUT, DPPV, DRNG, EPSF
  3877.  
  3878.      Other chunks (ignored but displayed in verbose mode):
  3879.           NAME, AUTH, (c), ANNO, DPI
  3880.  
  3881.      Unknown chunks are skipped.
  3882.  
  3883. 2 Options
  3884.      -verbose
  3885.           Give some informaton about the ILBM file.
  3886.  
  3887. 2 Bugs
  3888.      Probably.
  3889.  
  3890. 2 References
  3891.      Amiga ROM Kernel Reference Manual - Devices (3rd Ed.)
  3892.      Addison Wesley, ISBN 0-201-56775-X
  3893.  
  3894. 2 See_Also
  3895.      ppm(5), ppmtoilbm(1)
  3896.  
  3897. 2 Authors
  3898.      Copyright (C) 1989 by Jef Poskanzer.
  3899.      Modified June 1993 by Ingo Wilken
  3900.      (Ingo.Wilken@informatik.uni-oldenburg.de)
  3901.  
  3902. 1 imgtoppm
  3903.      imgtoppm - convert an Img-whatnot file into a portable  pix-
  3904.      map
  3905.  
  3906. 2 Synopsis
  3907.      imgtoppm [imgfile]
  3908.  
  3909. 2 Description
  3910.      Reads an Img-whatnot file as  input.   Produces  a  portable
  3911.      pixmap  as output.  The Img-whatnot toolkit is available for
  3912.      FTP on venera.isi.edu, along with numerous  images  in  this
  3913.      format.
  3914.  
  3915. 2 See_Also
  3916.      ppm
  3917.  
  3918. 2 Author
  3919.      Based on a simple conversion program posted to comp.graphics
  3920.      by Ed Falk.
  3921.  
  3922.      Copyright (C) 1989 by Jef Poskanzer.
  3923.  
  3924. 1 mtvtoppm
  3925.      mtvtoppm - convert output from the MTV or  PRT  ray  tracers
  3926.      into a portable pixmap
  3927.  
  3928. 2 Synopsis
  3929.      mtvtoppm [mtvfile]
  3930.  
  3931. 2 Description
  3932.      Reads an input  file  from  Mark  VanDeWettering's  MTV  ray
  3933.      tracer.  Produces a portable pixmap as output.
  3934.  
  3935.      The PRT raytracer also produces this format.
  3936.  
  3937. 2 See_Also
  3938.      ppm
  3939.  
  3940. 2 Author
  3941.      Copyright (C) 1989 by Jef Poskanzer.
  3942.  
  3943. 1 pcxtoppm
  3944.      pcxtoppm - convert a PCX file into a portable pixmap
  3945.  
  3946. 2 Synopsis
  3947.      pcxtoppm [pcxfile]
  3948.  
  3949. 2 Description
  3950.      Reads a PCX file as input.  Produces a  portable  pixmap  as
  3951.      output.
  3952.  
  3953. 2 See_Also
  3954.      ppmtopcx, ppm
  3955.  
  3956. 2 Author
  3957.      Copyright (C) 1990 by Michael Davidson.
  3958.  
  3959. 1 pgmtoppm
  3960.      pgmtoppm - colorize a portable graymap into a portable  pix-
  3961.      map
  3962.  
  3963. 2 Synopsis
  3964.      pgmtoppm colorspec [pgmfile]
  3965.      pgmtoppm colorspec1-colorspec2 [pgmfile]
  3966.      pgmtoppm -map mapfile [pgmfile]
  3967.  
  3968. 2 Description
  3969.      Reads a portable graymap as input.  Colorizes it  by  multi-
  3970.      plying the the gray values by specified color or colors, and
  3971.      produces a portable pixmap as output.
  3972.  
  3973.      If only one color is specified, black in the pgm file  stays
  3974.      black  and  white  in  the pgm file turns into the specified
  3975.      color in the ppm file.  If two colors (separated by a  dash)
  3976.      are specified, then black gets mapped to the first color and
  3977.      white gets mapped to the second.
  3978.  
  3979.      The color can be specified in five ways:
  3980.  
  3981.      o    A name, assuming that a pointer to an  X11-style  color
  3982.           names file was compiled in.
  3983.  
  3984.      o    An X11-style hexadecimal specifier: rgb:r/g/b, where  r
  3985.           g and b are each 1- to 4-digit hexadecimal numbers.
  3986.  
  3987.      o    An X11-style decimal specifier: rgbi:r/g/b, where  r  g
  3988.           and b are floating point numbers between 0 and 1.
  3989.  
  3990.      o    For backwards compatibility, an  old-X11-style  hexade-
  3991.           cimal    number:    #rgb,   #rrggbb,   #rrrgggbbb,   or
  3992.           #rrrrggggbbbb.
  3993.  
  3994.      o    For  backwards  compatibility,  a  triplet  of  numbers
  3995.           separated  by commas: r,g,b, where r g and b are float-
  3996.           ing point numbers between 0 and  1.   (This  style  was
  3997.           added before MIT came up with the similar rgbi style.)
  3998.  
  3999.      Also, the -map flag lets you specify an entire  colormap  to
  4000.      be  used.   The  mapfile  is  just a ppm file; it can be any
  4001.      shape, all that matters is the colors in it and their order.
  4002.      In  this case, black gets mapped into the first color in the
  4003.      map file, and white gets mapped to the last.
  4004.  
  4005. 2 See_Also
  4006.      rgb3toppm, ppmtopgm, ppmtorgb3, ppm, pgm
  4007.  
  4008. 2 Author
  4009.      Copyright (C) 1991 by Jef Poskanzer.
  4010.  
  4011. 1 pi1toppm
  4012.      pi1toppm - convert an Atari Degas .pi1 into a portable  pix-
  4013.      map
  4014.  
  4015. 2 Synopsis
  4016.      pi1toppm [pi1file]
  4017.  
  4018. 2 Description
  4019.      Reads an Atari Degas .pi1 file as input.  Produces  a  port-
  4020.      able pixmap as output.
  4021.  
  4022. 2 See_Also
  4023.      ppmtopi1, ppm, pi3topbm, pbmtopi3
  4024.  
  4025. 2 Author
  4026.      Copyright (C) 1991 by Steve Belczyk (seb3@gte.com)  and  Jef
  4027.      Poskanzer.
  4028.  
  4029. 1 picttoppm
  4030.      picttoppm - convert a Macintosh PICT file  into  a  portable
  4031.      pixmap
  4032.  
  4033. 2 Synopsis
  4034.      picttoppm [-verbose] [-fullres] [-noheader] [pictfile]
  4035.  
  4036. 2 Description
  4037.      Reads a PICT file (version 1 or 2) and  outputs  a  portable
  4038.      pixmap.   Useful  as  the first step in converting a scanned
  4039.      image to something that can be displayed on Unix.
  4040.  
  4041. 2 Options
  4042.      -fullres
  4043.           Force any images in the PICT file to be output with  at
  4044.           least  their full resolution.  A PICT file may indicate
  4045.           that a contained image is to be scaled down before out-
  4046.           put.   This  option forces images to retain their sizes
  4047.           and prevent information loss.
  4048.  
  4049.      -noheader
  4050.           Do not skip the 512 byte header that is present on  all
  4051.           PICT  files.   This  is  useful when you have PICT data
  4052.           that was not stored in the data fork of a PICT file.
  4053.  
  4054.      -verbose
  4055.           Turns on verbose mode which prints a a whole  bunch  of
  4056.           information  that  only  picttoppm  hackers really care
  4057.           about.
  4058.  
  4059. 2 Bugs
  4060.      The PICT file format is a general drawing format.  picttoppm
  4061.      only  supports a small subset of its operations but is still
  4062.      very useful for files produced  by  scanning  software.   In
  4063.      particular,  text  added to a scanned image will be silently
  4064.      ignored.
  4065.  
  4066. 2 See_Also
  4067.      Inside Macintosh volume 5, ppmtopict, ppm
  4068.  
  4069. 2 Author
  4070.      Copyright 1989 George Phillips
  4071.  
  4072. 1 pjtoppm
  4073.      pjtoppm - convert an HP PaintJet file to a portable pixmap
  4074.  
  4075. 2 Synopsis
  4076.      pjtoppm [paintjet]
  4077.  
  4078. 2 Description
  4079.      Reads an HP PaintJet file as input and converts  it  into  a
  4080.      portable  pixmap.  This was a quick hack to save some trees,
  4081.      and it only handles a small subset of the paintjet commands.
  4082.      In  particular,  it will only handle enough commands to con-
  4083.      vert most raster image files.
  4084.  
  4085. REFERENCES
  4086.      HP PaintJet XL Color Graphics Printer User's Guide
  4087.  
  4088. 2 See_Also
  4089.      ppmtopj
  4090.  
  4091. 2 Author
  4092.      Copyright (C) 1991 by Christos Zoulas.
  4093.  
  4094. 1 ppm3d
  4095.      ppm3d - convert two  portable  pixmap  into  a  red/blue  3d
  4096.      glasses pixmap
  4097.  
  4098. 2 Synopsis
  4099.      ppm3d leftppmfile rightppmfile [horizontal offset]
  4100.  
  4101. 2 Description
  4102.      Reads two portable pixmaps as input.   Produces  a  portable
  4103.      pixmap   as   output,   with   the   images  overlapping  by
  4104.      horizontal offset
  4105.  
  4106.      pixels in blue/red format.
  4107.  
  4108.      horizontal offset defaults to 30 pixels.   Pixmaps  MUST  be
  4109.      the same size.
  4110.  
  4111. 2 See_Also
  4112.      ppm(5)
  4113.  
  4114. 2 Author
  4115.      Copyright (C) 1993 by David K. Drum.
  4116.  
  4117. 1 ppmbrighten
  4118.      ppmbrighten - change an images Saturation and Value from  an
  4119.      HSV map
  4120.  
  4121. 2 Synopsis
  4122.      ppmbrighten  [-n]  [-s  <+-  saturation>]  [-v  <+-  value>]
  4123.      <ppmfile>
  4124.  
  4125. 2 Description
  4126.      Reads a portable pixmap as input.  Converts the  image  from
  4127.      RGB  space  to HSV space and changes the Value by <+- value>
  4128.      as a percentage.  Likewise with  the  Saturation.   Doubling
  4129.      the Value would involve
  4130.  
  4131.      ppmbrighten -v 100
  4132.  
  4133.      to add 100 percent to the Value.
  4134.  
  4135.      The 'n' option normalizes the Value to exist between 0 and 1
  4136.      (normalized).
  4137.  
  4138. 2 See_Also
  4139.      pgmnorm, ppm
  4140.  
  4141. 2 Notes
  4142.      This program does not change the number of colors.
  4143.  
  4144. 2 Author
  4145.      Copyright (C) 1990 by Brian Moffet Copyright (C) 1989 by Jef
  4146.      Poskanzer.
  4147.  
  4148.      Permission  to  use,  copy,  modify,  and  distribute   this
  4149.      software  and  its documentation for any purpose and without
  4150.      fee is hereby granted, provided  that  the  above  copyright
  4151.      notice  appear  in  all  copies and that both that copyright
  4152.      notice and this permission notice appear in supporting docu-
  4153.      mentation.   This  software  is  provided  "as  is"  without
  4154.      express or implied warranty.
  4155.  
  4156. 1 ppmchange
  4157.      ppmchange -  change  all  pixels  of  one  color  to another in a
  4158.      portable pixmap
  4159.  
  4160. 2 Synopsis
  4161.      ppmchange colorspec1 colorspec2 [ppmfile]
  4162.  
  4163. 2 Description
  4164.      Reads  a portable  pixmap  as  input.    Changes  all  pixels  of
  4165.      colorspec1 to colorspec2, leaving all others unchanged.
  4166.  
  4167.      The color can be specified in five ways:
  4168.  
  4169.      o    A name, assuming that a pointer to an  X11-style  color
  4170.           names file was compiled in.
  4171.  
  4172.      o    An X11-style hexadecimal specifier: rgb:r/g/b, where  r
  4173.           g and b are each 1- to 4-digit hexadecimal numbers.
  4174.  
  4175.      o    An X11-style decimal specifier: rgbi:r/g/b, where  r  g
  4176.           and b are floating point numbers between 0 and 1.
  4177.  
  4178.      o    For backwards compatibility, an  old-X11-style  hexade-
  4179.           cimal    number:    #rgb,   #rrggbb,   #rrrgggbbb,   or
  4180.           #rrrrggggbbbb.
  4181.  
  4182.      o    For  backwards  compatibility,  a  triplet  of  numbers
  4183.           separated  by commas: r,g,b, where r g and b are float-
  4184.           ing point numbers between 0 and  1.   (This  style  was
  4185.           added before MIT came up with the similar rgbi style.)
  4186.  
  4187. 2 See_Also
  4188.      pgmtoppm(1), ppm(5)
  4189.  
  4190. 2 Author
  4191.      Wilson H. Bent. Jr. (whb@usc.edu)
  4192.  
  4193. 1 ppmdim
  4194.      ppmdim - dim a portable pixmap down to total blackness
  4195.  
  4196. 2 Synopsis
  4197.      ppmdim dimfactor [ppmfile]
  4198.  
  4199. 2 Description
  4200.      Reads a portable pixmap as input.    Diminishes its brightness by
  4201.      the specified dimfactor down to total blackness.    The dimfactor
  4202.      may be in the range from 0.0 (total  blackness, deep night, nada,
  4203.      null, nothing) to 1.0 (original picture's brightness).
  4204.  
  4205.      As pnmgamma does not do the brightness correction in  the  way  I
  4206.      wanted it, this small program was written.
  4207.  
  4208.      ppmdim is similar to ppmbrighten , but not exactly the same.
  4209.  
  4210. 2 See_Also
  4211.      ppm(5), ppmflash(1), pnmgamma(1), ppmbrighten(1)
  4212.  
  4213. 2 Author
  4214.      Copyright (C) 1993 by Frank Neumann
  4215.  
  4216. 1 ppmdist
  4217.      ppmdist -  simplistic grayscale assignment for machine generated,
  4218.      color images
  4219.  
  4220. 2 Synopsis
  4221.      ppmdist [-intensity|-frequency] [ppmfile]
  4222.  
  4223. 2 Description
  4224.      Reads a portable pixmap  as  input,  performs  a  simplistic
  4225.      grayscale assignment intended for use with grayscale or bit-
  4226.      map printers.
  4227.  
  4228.      Often conversion from ppm to pgm will yield  an  image  with
  4229.      contrast  too low for good printer output.  The program max-
  4230.      imizes contrast between the gray levels output.
  4231.  
  4232.      A ppm input of n colors is read, and a pgm of n gray  levels
  4233.      is  written.   The  gray  levels  take on the values 0..n-1,
  4234.      while maxval takes on n-1.
  4235.  
  4236.      The mapping from color to stepped grayscale can be performed
  4237.      in  order of input pixel intensity, or input pixel frequency
  4238.      (number of repetitions).
  4239.  
  4240. 2 Options
  4241.      Helpful only for images with a very small number of  colors.
  4242.      Perhaps should have been an option to ppmtopgm.
  4243.  
  4244. 2 See_Also
  4245.      ppmtopgm, ppmhist, ppm
  4246.  
  4247. 2 Author
  4248.      Copyright (C) 1993 by Dan Stromberg.
  4249.  
  4250. 1 ppmdither
  4251.      ppmdither - ordered dither for color images
  4252.  
  4253. 2 Synopsis
  4254.      ppmdither [-dim dimension] [-red shades] [-green shades]  [-
  4255.      blue shades] [ppmfile]
  4256.  
  4257. 2 Description
  4258.      Reads a portable pixmap as input, and applies  dithering  to
  4259.      it to reduce the number of colors used down to the specified
  4260.      number of shades for each primary.  The  default  number  of
  4261.      shades is red=5, green=9, blue=5, for a total of 225 colors.
  4262.      To convert the image to a binary  rgb  format  suitable  for
  4263.      color  printers,  use  -red 2 -green 2 -blue 2.  The maximum
  4264.      number of colors that can be used is 256 and can be computed
  4265.      as the product of the number of red, green and blue shades.
  4266.  
  4267. 2 Options
  4268.      -dim dimension
  4269.                    The size of the dithering matrix.  Must  be  a
  4270.                    power of 2.
  4271.  
  4272.      -red shades   The number of red shades to be  used;  minimum
  4273.                    of 2.
  4274.  
  4275.      -green shades The number of green shades to be used; minimum
  4276.                    of 2.
  4277.  
  4278.      -blue shades  The number of blue shades to be used;  minimum
  4279.                    of 2.
  4280.  
  4281. 2 See_Also
  4282.      pnmdepth, ppmquant, ppm
  4283.  
  4284. 2 Author
  4285.      Copyright (C) 1991 by Christos Zoulas.
  4286.  
  4287. 1 ppmflash
  4288.      ppmflash - brighten a picture up to complete white-out
  4289.  
  4290. 2 Synopsis
  4291.      ppmflash flashfactor [ppmfile]
  4292.  
  4293. 2 Description
  4294.      Reads  a portable pixmap as input.  Increases its  brightness  by
  4295.      the  specified  flashfactor  up to a total white-out image.   The
  4296.      flashfactor  may  be  in  the  range from 0.0 (original picture's
  4297.      brightness) to 1.0 (full white-out, The Second After).
  4298.  
  4299.      As pnmgamma  does  not  do the brightness correction in the way I
  4300.      wanted it, this small program was written.
  4301.  
  4302.      This program is similar to ppmbrighten, but not exactly the same.
  4303.  
  4304. 2 See_Also
  4305.      ppm(5), ppmdim(1), pnmgamma(1), ppmbrighten(1)
  4306.  
  4307. 2 Author
  4308.      Copyright (C) 1993 by Frank Neumann
  4309.  
  4310. 1 ppmhist
  4311.      ppmhist - print a histogram of a portable pixmap
  4312.  
  4313. 2 Synopsis
  4314.      ppmhist [ppmfile]
  4315.  
  4316. 2 Description
  4317.      Reads a portable pixmap as input.  Generates a histogram  of
  4318.      the colors in the pixmap.
  4319.  
  4320. 2 See_Also
  4321.      ppm, pgmhist
  4322.  
  4323. 2 Author
  4324.      Copyright (C) 1989 by Jef Poskanzer.
  4325.  
  4326. 1 ppmmake
  4327.      ppmmake - create a pixmap of a specified size and color
  4328.  
  4329. 2 Synopsis
  4330.      ppmmake color width height
  4331.  
  4332. 2 Description
  4333.      Produces a portable pixmap of the  specified  color,  width,
  4334.      and height.
  4335.  
  4336.      The color can be specified in five ways:
  4337.  
  4338.      o    A name, assuming that a pointer to an  X11-style  color
  4339.           names file was compiled in.
  4340.  
  4341.      o    An X11-style hexadecimal specifier: rgb:r/g/b, where  r
  4342.           g and b are each 1- to 4-digit hexadecimal numbers.
  4343.  
  4344.      o    An X11-style decimal specifier: rgbi:r/g/b, where  r  g
  4345.           and b are floating point numbers between 0 and 1.
  4346.  
  4347.      o    For backwards compatibility, an  old-X11-style  hexade-
  4348.           cimal    number:    #rgb,   #rrggbb,   #rrrgggbbb,   or
  4349.           #rrrrggggbbbb.
  4350.  
  4351.      o    For  backwards  compatibility,  a  triplet  of  numbers
  4352.           separated  by commas: r,g,b, where r g and b are float-
  4353.           ing point numbers between 0 and  1.   (This  style  was
  4354.           added before MIT came up with the similar rgbi style.)
  4355.  
  4356. 2 See_Also
  4357.      ppm, pbmmake
  4358.  
  4359. 2 Author
  4360.      Copyright (C) 1991 by Jef Poskanzer.
  4361.  
  4362. 1 ppmmix
  4363.      ppmmix - blend together two portable pixmaps
  4364.  
  4365. 2 Synopsis
  4366.      ppmmix fadefactor ppmfile1 ppmfile2
  4367.  
  4368. 2 Description
  4369.      Reads two portable pixmaps  as  input.  Mixes them together using
  4370.      the specified fade factor.   The  fade factor may be in the range
  4371.      from 0.0 (only ppmfile1's image data)  to  1.0  (only  ppmfile2's
  4372.      image data).  Anything in between gains  a  smooth  blend between
  4373.      the two images.
  4374.  
  4375.      The two pixmaps must have the same size.
  4376.  
  4377. 2 See_Also
  4378.      ppm(5)
  4379.  
  4380. 2 Author
  4381.      Copyright (C) 1993 by Frank Neumann
  4382.  
  4383. 1 ppmntsc
  4384.      ppmntsc - make a portable pixmap look like taken from an American
  4385.      TV
  4386.  
  4387. 2 Synopsis
  4388.      ppmntsc dimfactor [ppmfile]
  4389.  
  4390. 2 Description
  4391.      Reads a portable pixmap as input.  Dims  every other row of image
  4392.      data down by the specified dim factor.  This factor may be in the
  4393.      range  of  0.0  (the  alternate  lines are totally black) to  1.0
  4394.      (original image).
  4395.  
  4396.      This  creates  an  effect  similar to what I've once seen in  the
  4397.      video clip 'You could be mine' by Guns'n'Roses.  In the scene I'm
  4398.      talking about  you  can see John Connor on his motorbike, looking
  4399.      up from the  water trench (?) he's standing in.  While the camera
  4400.      pulls back, the image  gets  'normal'  by  brighten-  ing  up the
  4401.      alternate rows of it.   I  thought  this  would be an interesting
  4402.      effect to try in MPEG.   I  did  not yet check this out, however.
  4403.      Try for yourself.
  4404.  
  4405. 2 See_Also
  4406.      ppm(5), ppmdim(1)
  4407.  
  4408. 2 Author
  4409.      Copyright (C) 1993 by Frank Neumann
  4410.  
  4411. 1 ppmquant
  4412.      ppmquant - quantize the colors in  a  portable  pixmap  down to a
  4413.      specified number
  4414.  
  4415. 2 Synopsis
  4416.      ppmquant [-floyd|-fs] ncolors [ppmfile]
  4417.      ppmquant [-floyd|-fs] -map mapfile [ppmfile]
  4418.  
  4419. 2 Description
  4420.      Reads a portable pixmap as input.  Chooses ncolors colors to
  4421.      best  represent  the  image, maps the existing colors to the
  4422.      new ones, and writes a portable pixmap as output.
  4423.  
  4424.      The quantization method is Heckbert's "median cut".
  4425.  
  4426.      Alternately, you can skip the color-choosing step by  speci-
  4427.      fying  your  own set of colors with the -map flag.  The map-
  4428.      file is just a ppm file; it  can  be  any  shape,  all  that
  4429.      matters is the colors in it.  For instance, to quantize down
  4430.      to the 8-color IBM TTL color set, you might use:
  4431.          P3
  4432.          8 1
  4433.          255
  4434.            0   0   0
  4435.          255   0   0
  4436.            0 255   0
  4437.            0   0 255
  4438.          255 255   0
  4439.          255   0 255
  4440.            0 255 255
  4441.          255 255 255
  4442.      If you want to quantize one pixmap  to  use  the  colors  in
  4443.      another  one,  just  use the second one as the mapfile.  You
  4444.      don't have to reduce it down  to  only  one  pixel  of  each
  4445.      color, just use it as is.
  4446.  
  4447.      The -floyd/-fs flag enables a Floyd-Steinberg  error  diffu-
  4448.      sion  step.   Floyd-Steinberg gives vastly better results on
  4449.      images where the  unmodified  quantization  has  banding  or
  4450.      other  artifacts, especially when going to a small number of
  4451.      colors such as the above IBM set.   However,  it  does  take
  4452.      substantially more CPU time, so the default is off.
  4453.  
  4454.      All flags can be abbreviated to their shortest  unique  pre-
  4455.      fix.
  4456.  
  4457. 2 References
  4458.      "Color Image Quantization for Frame Buffer Display" by  Paul
  4459.      Heckbert, SIGGRAPH '82 Proceedings, page 297.
  4460.  
  4461. 2 See_Also
  4462.      ppmquantall, pnmdepth, ppmdither, ppm
  4463.  
  4464. 2 Author
  4465.      Copyright (C) 1989, 1991 by Jef Poskanzer.
  4466.  
  4467. 1 ppmrelief
  4468.      ppmrelief - run a Laplacian relief filter on a portable pixmap
  4469.  
  4470. 2 Synopsis
  4471.      ppmrelief [ppmfile]
  4472.  
  4473. 2 Description
  4474.      Reads a portable pixmap as input.  Does a  Laplacian  relief
  4475.      filter, and writes a portable pixmap as output.
  4476.  
  4477.      The Laplacian relief filter is described in "Beyond  Photog-
  4478.      raphy"  by  Holzmann,  equation  3.19.  It's a sort of edge-
  4479.      detection.
  4480.  
  4481. 2 See_Also
  4482.      pgmbentley, pgmoil, ppm
  4483.  
  4484. 2 Author
  4485.      Copyright (C) 1990 by Wilson Bent (whb@hoh-2.att.com)
  4486.  
  4487. 1 ppmshift
  4488.      ppmshift - shift lines of  a  portable  pixmap left or right by a
  4489.      random amount
  4490.  
  4491. 2 Synopsis
  4492.      ppmshift shift [ppmfile]
  4493.  
  4494. 2 Description
  4495.      Reads a portable pixmap as input.  Shifts every row of image data
  4496.      to the left or right by a certain  amount.  The 'shift' parameter
  4497.      determines by how many pixels a row is to be shifted at most.
  4498.  
  4499.      Another one of those effects I intended to use  for  MPEG  tests.
  4500.      Unfortunately,  this  program will not help me here - it  creates
  4501.      too  random patterns to be used for animations.  Still, it  might
  4502.      give interesting results on still images.
  4503.  
  4504. 2 Example
  4505.      Check  this  out:    Save your  favourite  model's  picture  from
  4506.      something like alt.binaries.pictures.supermodels (ok, or from any
  4507.      other  picture source), convert it to ppm, and  process  it  e.g.
  4508.      like this, assuming the picture is 800x600 pixels:
  4509.      
  4510.        # take the upper half, and leave it like it is
  4511.        pnmcut 0 0 800 300 cs.ppm >upper.ppm
  4512.  
  4513.        # take the lower half, flip it upside down,  dim it and distort
  4514.          it a little
  4515.        pnmcut 0 300 800 300 cs.ppm | pnmflip -tb | ppmdim 0.7 |
  4516.           ppmshift 10 >lower.ppm
  4517.  
  4518.        # and concatenate the two pieces
  4519.        pnmcat -tb upper.ppm lower.ppm >newpic.ppm  The  resulting
  4520.      picture  looks  like the image being reflected on a water surface
  4521.      with slight ripples.
  4522.  
  4523. 2 See_Also
  4524.      ppm(5), pnmcut(1), pnmflip(1), ppmdim(1), pnmcat(1)
  4525.  
  4526. 2 Author
  4527.      Copyright (C) 1993 by Frank Neumann
  4528.  
  4529. 1 ppmspread
  4530.      ppmspread - displace  a  portable  pixmap's  pixels by  a  random
  4531.      amount
  4532.  
  4533. 2 Synopsis
  4534.      ppmspread amount [ppmfile]
  4535.  
  4536. 2 Description
  4537.      Reads a portable pixmap as input.  Moves every pixel around a bit
  4538.      relative to its original position.  amount determines by how many
  4539.      pixels a pixel is to be moved around at most.
  4540.  
  4541.      Pictures processed with this  filter  will  seem  to  be somewhat
  4542.      dissolved or unfocussed (although they  appear  more  coarse than
  4543.      images processed by something like pnmconvol ).
  4544.  
  4545. 2 See_Also
  4546.      ppm(5), pnmconvol(1)
  4547.  
  4548. 2 Author
  4549.      Copyright (C) 1993 by Frank Neumann
  4550.  
  4551. 1 ppmtoacad
  4552.      ppmtoacad - convert portable pixmap to AutoCAD database or slide
  4553.  
  4554. 2 Synopsis
  4555.      ppmtoacad [-dxb] [-poly] [-background colour] [-white] [-
  4556.                aspect ratio] [-8] [ppmfile]
  4557.  
  4558. 2 Description
  4559.      Reads a portable pixmap as input.  Produces an AutoCAD(Reg.)
  4560.      slide  file or binary database import (.dxb) file as output.
  4561.      If no ppmfile is specified,  input  is  read  from  standard
  4562.      input.
  4563.  
  4564. 2 Options
  4565.      -dxb An AutoCAD binary database import (.dxb) file is  writ-
  4566.           ten.   This  file  is  read with the DXBIN command and,
  4567.           once loaded, becomes part of  the  AutoCAD  geometrical
  4568.           database  and  can  be viewed and edited like any other
  4569.           object.  Each sequence of identical  pixels  becomes  a
  4570.           separate  object  in  the  database; this can result in
  4571.           very large AutoCAD drawing files.  However, if you want
  4572.           to trace over a bitmap, it lets you zoom and pan around
  4573.           the bitmap as you wish.
  4574.  
  4575.      -poly
  4576.           If the -dxb option is  not  specified,  the  output  of
  4577.           ppmtoacad  is an AutoCAD slide file.  Normally each row
  4578.           of pixels is represented by an AutoCAD line entity.  If
  4579.           -poly  is  selected,  the pixels are rendered as filled
  4580.           polygons.  If the slide is viewed  on  a  display  with
  4581.           higher  resolution  than  the  source pixmap, this will
  4582.           cause the pixels to  expand  instead  of  appearing  as
  4583.           discrete  lines  against  the screen background colour.
  4584.           Regrettably, this  representation  yields  slide  files
  4585.           which  occupy  more  disc  space  and  take  longer  to
  4586.           display.
  4587.  
  4588.      -background colour
  4589.           Most AutoCAD display drivers can be configured  to  use
  4590.           any  available  colour  as the screen background.  Some
  4591.           users perfer a black screen background,  others  white,
  4592.           while splinter groups advocate burnt ocher, tawny puce,
  4593.           and shocking grey.   Discarding  pixels  whose  closest
  4594.           AutoCAD  colour  representation  is  equal to the back-
  4595.           ground colour can substantially reduce the size of  the
  4596.           AutoCAD  database  or  slide file needed to represent a
  4597.           bitmap.  If no -background  colour  is  specified,  the
  4598.           screen  background  colour is assumed to be black.  Any
  4599.           AutoCAD colour number may be specified  as  the  screen
  4600.           background;  colour  numbers are assumed to specify the
  4601.           hues  defined  in  the  standard  AutoCAD  256   colour
  4602.           palette.
  4603.  
  4604.      -white
  4605.           Since many AutoCAD users choose a  white  screen  back-
  4606.           ground, this option is provided as a short-cut.  Speci-
  4607.           fying -white is identical in effect to -background 7.
  4608.  
  4609.      -aspect ratio
  4610.           If the source pixmap had non-square pixels,  the  ratio
  4611.           of  the pixel width to pixel height should be specified
  4612.           as ratio.  The resulting slide or  .dxb  file  will  be
  4613.           corrected  so that pixels on the AutoCAD screen will be
  4614.           square.  For example, to correct an image  made  for  a
  4615.           320x200 VGA/MCGA screen, specify -aspect 0.8333.
  4616.  
  4617.      -8   Restricts the colours in the output file to the  8  RGB
  4618.           shades.
  4619.  
  4620.      All flags can be abbreviated to their shortest  unique  pre-
  4621.      fix.
  4622.  
  4623. 2 Bugs
  4624.      AutoCAD has a fixed  palette  of  256  colours,  distributed
  4625.      along  the  hue,  lightness,  and  saturation axes.  Pixmaps
  4626.      which contain many nearly-identical colours, or colours  not
  4627.      closely  approximated  by  AutoCAD's  palette, may be poorly
  4628.      rendered.
  4629.  
  4630.      ppmtoacad works best if the  system  displaying  its  output
  4631.      supports the full 256 colour AutoCAD palette.  Monochrome, 8
  4632.      colour, and 16 colour configurations will produce less  than
  4633.      optimal results.
  4634.  
  4635.      When creating a .dxb file or a slide  file  with  the  -poly
  4636.      option, ppmtoacad finds both vertical and horizontal runs of
  4637.      identical pixels  and  consolidates  them  into  rectangular
  4638.      regions  to  reduce  the  size  of the output file.  This is
  4639.      effective for images with large areas of constant colour but
  4640.      it's no substitute for true raster to vector conversion.  In
  4641.      particular, thin diagonal lines are not optimised at all  by
  4642.      this process.
  4643.  
  4644.      Output files can be huge.
  4645.  
  4646. 2 See_Also
  4647.      AutoCAD Reference Manual: Slide File Format and Binary Draw-
  4648.      ing Interchange (DXB) Files, ppm
  4649.  
  4650. 2 Author
  4651.           John Walker
  4652.           Autodesk SA
  4653.           Avenue des Champs-Montants 14b
  4654.           CH-2074 MARIN
  4655.           Suisse/Schweiz/Svizzera/Svizra/Switzerland
  4656.           Usenet:  kelvin@Autodesk.com
  4657.           Fax:     038/33 88 15
  4658.           Voice:   038/33 76 33
  4659.  
  4660.      Permission  to  use,  copy,  modify,  and  distribute   this
  4661.      software  and  its documentation for any purpose and without
  4662.      fee is hereby granted, without any  conditions  or  restric-
  4663.      tions.   This software is provided ``as is'' without express
  4664.      or implied warranty.
  4665.  
  4666.      AutoCAD and Autodesk are registered trademarks of  Autodesk,
  4667.      Inc.
  4668.  
  4669. 1 ppmtobmp
  4670.      ppmtobmp - convert a portable pixmap into a BMP file
  4671.  
  4672. 2 Synopsis
  4673.      ppmtobmp [-windows] [-os2] [ppmfile]
  4674.  
  4675. 2 Description
  4676.      Reads a portable pixmap as input.  Produces a Microsoft Win-
  4677.      dows or OS/2 BMP file as output.
  4678.  
  4679. 2 Options
  4680.      -windows
  4681.           Tells the program to produce a  Microsoft  Windows  BMP
  4682.           file.
  4683.  
  4684.      -os2 Tells the program to produce an OS/2 BMP  file.   (This
  4685.           is the default.)
  4686.  
  4687.      All flags can be abbreviated to their shortest  unique  pre-
  4688.      fix.
  4689.  
  4690. 2 See_Also
  4691.      bmptoppm, ppm
  4692.  
  4693. 2 Author
  4694.      Copyright (C) 1992 by David W. Sanderson.
  4695.  
  4696. 1 ppmtogif
  4697.      ppmtogif - convert a portable pixmap into a GIF file
  4698.  
  4699. 2 Synopsis
  4700.      ppmtogif [-interlace] [-sort] [-map mapfile ] [ppmfile]
  4701.  
  4702. 2 Description
  4703.      Reads a portable pixmap as input.  Produces a  GIF  file  as
  4704.      output.
  4705.  
  4706. 2 Options
  4707.      -interlace
  4708.           Tells the program to produce an interlaced GIF file.
  4709.  
  4710.      -sort
  4711.           Produces a GIF file with a sorted color map.
  4712.  
  4713.      -map mapfile
  4714.  
  4715.           Uses the colors found in  the  mapfile  to  create  the
  4716.           colormap  in  the  GIF file, instead of the colors from
  4717.           ppmfile. The mapfile can be  any  ppm  file;  all  that
  4718.           matters  is  the colors in it. If the colors in ppmfile
  4719.           do not match those in mapfile , they are matched  to  a
  4720.           "best match". A (much) better result can be obtained by
  4721.           using the following filter in advance:
  4722.  
  4723.           ppmquant -floyd -map mapfile
  4724.  
  4725.      All flags can be abbreviated to their shortest  unique  pre-
  4726.      fix.
  4727.  
  4728. 2 See_Also
  4729.      giftopnm, ppmquant, ppm
  4730.  
  4731. 2 Author
  4732.      Based      on      GIFENCOD      by       David       Rowley
  4733.      <mgardi@watdcsu.waterloo.edu>.  Lempel-Ziv compression based
  4734.      on "compress".
  4735.  
  4736.      Copyright (C) 1989 by Jef Poskanzer.
  4737.  
  4738. 1 ppmtoicr
  4739.      ppmtoicr - convert a portable pixmap into NCSA ICR format
  4740.  
  4741. 2 Synopsis
  4742.      ppmtoicr  [-windowname  name]  [-expand  expand]   [-display
  4743.      display] [-rle] [ppmfile]
  4744.  
  4745. 2 Description
  4746.      Reads a portable pixmap file as  input.   Produces  an  NCSA
  4747.      Telnet  Interactive Color Raster graphic file as output.  If
  4748.      ppmfile is not supplied, ppmtoicr will  read  from  standard
  4749.      input.
  4750.  
  4751.      Interactive Color Raster (ICR) is a protocol for  displaying
  4752.      raster  graphics  on  workstation  screens.  The protocol is
  4753.      implemented in NCSA Telnet for the  Macintosh  version  2.3.
  4754.      The  ICR  protocol  shares  characteristics of the Tektronix
  4755.      graphics terminal emulation protocol.  For  example,  escape
  4756.      sequences are used to control the display.
  4757.  
  4758.      ppmtoicr will output the appropriate sequences to  create  a
  4759.      window  of  the  dimensions  of  the  input pixmap, create a
  4760.      colormap of up to 256 colors on the display, then  load  the
  4761.      picture data into the window.
  4762.  
  4763.      Note that there is no icrtoppm tool - this transformation is
  4764.      one way.
  4765.  
  4766. 2 Options
  4767.      -windownamename
  4768.                    Output will be displayed in name  (Default  is
  4769.                    to use ppmfile or "untitled" if standard input
  4770.                    is read.)
  4771.  
  4772.      -expandexpand Output will be expanded on display  by  factor
  4773.                    expand  (For  example, a value of 2 will cause
  4774.                    four pixels to be displayed  for  every  input
  4775.                    pixel.)
  4776.  
  4777.      -displaydisplay
  4778.                    Output will be displayed  on  screen  numbered
  4779.                    display
  4780.  
  4781.      -rle          Use run-length  encoded  format  for  display.
  4782.                    (This  will  nearly always result in a quicker
  4783.                    display, but may skew the colormap.)
  4784.  
  4785. 2 Examples
  4786.      To display a ppm file using the protocol:
  4787.          ppmtoicr ppmfile
  4788.      This will create a window named ppmfile on the display  with
  4789.      the  correct  dimensions  for ppmfile, create and download a
  4790.      colormap of up to 256 colors, and download the picture  into
  4791.      the window. The same effect may be achieved by the following
  4792.      sequence:
  4793.          ppmtoicr ppmfile > filename
  4794.          cat filename
  4795.      To display a GIF file using the protocol in a window  titled
  4796.      after  the  input file, zoom the displayed image by a factor
  4797.      of 2, and run-length encode the data:
  4798.          giftopnm giffile | ppmtoicr -w giffile -r -e 2
  4799.  
  4800. 2 Bugs
  4801.      The protocol uses frequent fflush calls to speed up display.
  4802.      If  the output is saved to a file for later display via cat,
  4803.      drawing will be much slower. In either case, increasing  the
  4804.      Blocksize  limit  on  the display will speed up transmission
  4805.      substantially.
  4806.  
  4807. 2 See_Also
  4808.      ppm
  4809.  
  4810.      NCSA Telnet for the Macintosh,  University  of  Illinois  at
  4811.      Urbana-Champaign (1989)
  4812.  
  4813. 2 Author
  4814.      Copyright     (C)      1990      by      Kanthan      Pillay
  4815.      (svpillay@Princeton.EDU), Princeton University Computing and
  4816.      Information Technology.
  4817.  
  4818. 1 ppmtoilbm
  4819.      ppmtoilbm - convert a portable pixmap into an ILBM file
  4820.  
  4821. 2 Synopsis
  4822.      ppmtoilbm [-maxplanes|-mp  N]  [-fixplanes|-fp  N]  [-ham6|-
  4823.      ham8]   [-dcbits|-dcplanesrg   [-normal|-hamif|-hamforce   -
  4824.      dcif|-dcforce|-cmaponly] [-ecs|-aga] [-mapppmfile] [ppmfile]
  4825.  
  4826. 2 Description
  4827.      Reads a portable pixmap as input.  Produces an ILBM file  as
  4828.      output.  Supported ILBM types are:
  4829.  
  4830.      Normal ILBMs with 1-16 planes.
  4831.  
  4832.      Amiga Hold-and-modify (HAM) with 3-16 planes.
  4833.  
  4834.      24 bit.
  4835.  
  4836.      Color map (BMHD + CMAP chunk only, nPlanes = 0).
  4837.  
  4838.      Unofficial direct color.
  4839.           1-16 planes for each color component.
  4840.  
  4841.      Chunks written:
  4842.           BMHD, CMAP, CAMG (only for HAM), BODY (not for colormap
  4843.           files) unofficial DCOL chunk for direct color ILBM
  4844.  
  4845. 2 Options
  4846.      Options marked with (*) can be prefixed with  a  "no",  e.g.
  4847.      "-nohamif". All options can be abbreviated to their shortest
  4848.      unique prefix.
  4849.  
  4850.      -maxplanes | -mp n
  4851.           (default 5, minimum 1, maximum 16)  Maximum  planes  to
  4852.           write  in  a  normal  ILBM.  If the pixmap does not fit
  4853.           into <n> planes, ppmtoilbm writes a HAM file (if -hamif
  4854.           is  used),  a 24bit file (if -24if is used) or a direct
  4855.           color file (if -dcif is used) or aborts with an error.
  4856.  
  4857.      -fixplanes | -fp n
  4858.           (min 1, max 16) If a normal ILBM is  written,  it  will
  4859.           have exactly <n> planes.
  4860.  
  4861.      -hambits | -hamplanes n
  4862.           (default 6, min 3, max 16) Select number of planes  for
  4863.           HAM picture.  The current Amiga hardware supports 6 and
  4864.           8 planes, so for now you should only use this values.
  4865.  
  4866.      -normal (default)
  4867.           Turns  off   -hamif/-24if/-dcif,   -hamforce/-24force/-
  4868.           dcforce and -cmaponly.
  4869.  
  4870.      -hamif (*)
  4871.  
  4872.      -24if (*)
  4873.  
  4874.      -dcif (*)
  4875.           Write a HAM/24bit/direct color file if the pixmap  does
  4876.           not fit into <maxplanes> planes.
  4877.  
  4878.      -hamforce (*)
  4879.  
  4880.      -24force (*)
  4881.  
  4882.      -dcforce (*)
  4883.           Write a HAM/24bit/direct color file.
  4884.  
  4885.      -dcbits | -dcplanes r g b
  4886.           (default 5, min 1, max 16).  Select number of bits  for
  4887.           red, green & blue in a direct color ILBM.
  4888.  
  4889.      -ecs (default)
  4890.           Shortcut for: -hamplanes 6 -maxplanes 5
  4891.  
  4892.      -aga
  4893.  
  4894.      Shortcut for: -hamplanes 8 -maxplanes 8
  4895.  
  4896.      -ham6
  4897.  
  4898.      Shortcut for: -hamplanes 6 -hamforce
  4899.  
  4900.      -ham8
  4901.           Shortcut for: -hamplanes 8 -hamforce
  4902.  
  4903.      -map ppmfile
  4904.           Write a normal ILBM using the colors  in  <ppmfile>  as
  4905.           the  colormap.  The  colormap  file also determines the
  4906.           number of planes, a -maxplanes or -fixplanes option  is
  4907.           ignored.
  4908.  
  4909.      -cmaponly
  4910.           Write a colormap file: only BMHD and  CMAP  chunks,  no
  4911.           BODY chunk, nPlanes = 0.
  4912.  
  4913. 2 Bugs
  4914.      Needs a real colormap selection algorithm for HAM  pictures,
  4915.      instead of using a grayscale colormap.
  4916.  
  4917. 2 References
  4918.      Amiga ROM Kernel Reference Manual - Devices (3rd Ed.)
  4919.      Addison Wesley, ISBN 0-201-56775-X
  4920.  
  4921. 2 See_Also
  4922.      ppm(5), ilbmtoppm(1)
  4923.  
  4924. 2 Authors
  4925.      Copyright (C) 1989 by Jef Poskanzer.
  4926.      Modified August 1993 by Ingo Wilken
  4927.     (Ingo.Wilken@informatik.uni-oldenburg.de)
  4928.  
  4929. 1 ppmtomitsu
  4930.      ppmtomitsu - convert a portable pixmap to a Mitsubishi S340-10 file
  4931.  
  4932. 2 Synopsis
  4933.      ppmtomitsu [-sharpness val] [-enlarge val] [-media string]
  4934.                 [-copy val] [-dpi300] [-tiny] [ppmfile]
  4935.  
  4936. 2 Description
  4937.      Reads a portable pixmap as input and  converts  it  into  a  format
  4938.      suitable  to  be printed by a Mitsubishi S340-10  printer,  or  any
  4939.      other Mitsubishi color sublimation printer.
  4940.  
  4941.      The  Mitsubishi  S340-10  Color  Sublimation printer supports 24bit
  4942.      color.  Images of the available sizes take so long to transfer that
  4943.      there is a  fast  method,  employing a lookuptable, that ppmtomitsu
  4944.      will use if there  is  a  maximum  of  256  colors  in  the pixmap.
  4945.      ppmtomitsu will try to position  your  image  to  the center of the
  4946.      paper, and will rotate your image  for  you if xsize is larger than
  4947.      ysize.  If your image is larger  than  the media allows, ppmtomitsu
  4948.      will quit with an error message.  (We  decided  that the media were
  4949.      too expensive to have careless users produce misprints.) Once  data
  4950.      transmission  has started, the job can't be stopped in a  sane  way
  4951.      without resetting the  printer.    The  printer understands putting
  4952.      together images in the printers memory;  ppmtomitsu doesn't utilize
  4953.      this as pnmcat etc provide  the same functionality and let you view
  4954.      the  result  on-screen, too.  The  S340-10  is  the  lowest  common
  4955.      denominator  printer;  for higher resolution printers  there's  the
  4956.      dpi300 option.  The other printers also support  higher  values for
  4957.      enlarge eg., but I don't think that's essential enough to warrant a
  4958.      change in the program.
  4959.  
  4960.      -sharpness 1-4
  4961.           'sharpness' designation.    Default  is  to  use  the  current
  4962.           sharpness.
  4963.  
  4964.      -enlarge 1-3
  4965.           Enlarge by a factor; Default is 1 (no enlarge)
  4966.  
  4967.      -media A, A4, AS, A4S
  4968.           Designate the media  you're  using.    Default is 1184 x 1350,
  4969.           which will fit on any media.  A  is  1216 x 1350, A4 is 1184 x
  4970.           1452, AS is 1216 x 1650 and A4S is 1184 x 1754.    A  warning:
  4971.           If you specify a  different  media  than the printer currently
  4972.           has, the printer will wait until  you put in the correct media
  4973.           or switch it off.
  4974.  
  4975.      -copy 1-9
  4976.           The number of copies to produce. Default is 1.
  4977.  
  4978.      -dpi300
  4979.           Double the number of allowed pixels for  a S3600-30 Printer in
  4980.           S340-10 compatibility mode.  (The S3600-30 has 300 dpi).
  4981.  
  4982.      -tiny
  4983.           Memory-safing, but always slow.  The printer will get the data
  4984.           line-by-line in 24bit.  It's probably a good idea to  use this
  4985.           if your machine starts paging a lot without this option.
  4986.  
  4987. 2 References
  4988.      Mitsubishi Sublimation Full Color Printer S340-10 Specifications of
  4989.      Parallel Interface LSP-F0232F
  4990.  
  4991. 2 See_Also
  4992.      ppmquant(1), pnmscale(1), ppm(5)
  4993.  
  4994. 2 Bugs
  4995.      We didn't find any - yet.  (Besides, they're called features anyway
  4996.      :-) If you should find one, my email-adress is below.
  4997.  
  4998. 2 Author
  4999.      Copyright (C) 1992, 93  by  S.Petra  Zeidler,  MPIfR Bonn, Germany.
  5000.      (spz@specklec.mpifr-bonn.mpg.de)
  5001.  
  5002. 1 ppmtopcx
  5003.      ppmtopcx - convert a portable pixmap into a PCX file
  5004.  
  5005. 2 Synopsis
  5006.      ppmtopcx [ppmfile]
  5007.  
  5008. 2 Description
  5009.      Reads a portable pixmap as input.  Produces a  PCX  file  as
  5010.      output.
  5011.  
  5012. 2 See_Also
  5013.      pcxtoppm, ppm
  5014.  
  5015. 2 Author
  5016.      Copyright (C) 1990 by Michael Davidson.
  5017.  
  5018. 1 ppmtopgm
  5019.      ppmtopgm - convert a portable pixmap into a portable graymap
  5020.  
  5021. 2 Synopsis
  5022.      ppmtopgm [ppmfile]
  5023.  
  5024. 2 Description
  5025.      Reads a portable pixmap as input.  Produces a portable gray-
  5026.      map  as  output.   The quantization formula used is .299 r +
  5027.      .587 g + .114 b.
  5028.  
  5029.      Note that although there is a pgmtoppm program,  it  is  not
  5030.      necessary  for  simple  conversions from pgm to ppm, because
  5031.      any ppm program can read pgm (and pbm ) files automagically.
  5032.      pgmtoppm  is for colorizing a pgm file.  Also, see ppmtorgb3
  5033.      for a different way of converting color to gray.
  5034.  
  5035. 2 QUOTE
  5036.      Cold-hearted orb that rules the night
  5037.      Removes the colors from our sight
  5038.      Red is gray, and yellow white
  5039.      But we decide which is right
  5040.      And which is a quantization error.
  5041.  
  5042. 2 See_Also
  5043.      pgmtoppm, ppmtorgb3, rgb3toppm, ppm, pgm
  5044.  
  5045. 2 Author
  5046.      Copyright (C) 1989 by Jef Poskanzer.
  5047.  
  5048. 1 ppmtopi1
  5049.      ppmtopi1 - convert a portable pixmap  into  an  Atari  Degas
  5050.      .pi1 file
  5051.  
  5052. 2 Synopsis
  5053.      ppmtopi1 [ppmfile]
  5054.  
  5055. 2 Description
  5056.      Reads a portable pixmap as input.  Produces an  Atari  Degas
  5057.      .pi1 file as output.
  5058.  
  5059. 2 See_Also
  5060.      pi1toppm, ppm, pbmtopi3, pi3topbm
  5061.  
  5062. 2 Author
  5063.      Copyright (C) 1991 by Steve Belczyk (seb3@gte.com)  and  Jef
  5064.      Poskanzer.
  5065.  
  5066. 1 ppmtopict
  5067.      ppmtopict - convert a portable pixmap into a Macintosh  PICT
  5068.      file
  5069.  
  5070. 2 Synopsis
  5071.      ppmtopict [ppmfile]
  5072.  
  5073. 2 Description
  5074.      Reads a portable pixmap as input.  Produces a Macintosh PICT
  5075.      file as output.
  5076.  
  5077.      The generated file is only the data fork of a picture.   You
  5078.      will  need  a program such as mcvert to generate a Macbinary
  5079.      or a BinHex file that contains the necessary information  to
  5080.      identify the file as a PICT file to MacOS.
  5081.  
  5082.      Even though PICT supports 2 and 4 bits per pixel,  ppmtopict
  5083.      always generates an 8 bits per pixel file.
  5084.  
  5085. 2 Bugs
  5086.      The picture size field is only correct if the output is to a
  5087.      file  since  writing  into this field requires seeking back-
  5088.      wards on a file.  However the PICT  documentation  seems  to
  5089.      suggest  that  this field is not critical anyway since it is
  5090.      only the lower 16 bits of the picture size.
  5091.  
  5092. 2 See_Also
  5093.      picttoppm, ppm, mcvert
  5094.  
  5095. 2 Author
  5096.      Copyright (C) 1990 by Ken Yap <ken@cs.rocester.edu>.
  5097.  
  5098. 1 ppmtopj
  5099.      ppmtopj - convert a portable pixmap to an HP PaintJet file
  5100.  
  5101. 2 Synopsis
  5102.      ppmtopj  [-gamma  val]  [-xpos  val]  [-ypos   val]   [-back
  5103.      dark|lite]         [-rle]         [-center]         [-render
  5104.      none|snap|bw|dither|diffuse|monodither|monodiffuse|clusterdither|monoclusterdither]
  5105.      [ppmfile]
  5106.  
  5107. 2 Description
  5108.      Reads a portable pixmap as input and converts it into a for-
  5109.      mat suitable to be printed by an HP PaintJet printer.
  5110.  
  5111.      For best results, the input file should be  in  8-color  RGB
  5112.      form;  i.e. it should have only the 8 binary combinations of
  5113.      full-on and full-off primaries.  You could get this by send-
  5114.      ing  the  input  file  through ppmquant -map with a map file
  5115.      such as:
  5116.          P3
  5117.          8 1
  5118.          255
  5119.          0 0 0      255 0 0    0 255 0    0 0 255
  5120.          255 255 0  255 0 255  0 255 255  255 255 255
  5121.      Or else you could use use ppmdither -red 2 -green 2 -blue
  5122.  
  5123. 2 Options
  5124.      -rle          Run length encode the image.  (This can result
  5125.                    in larger images)
  5126.  
  5127.      -back         Enhance the foreground by  indicating  if  the
  5128.                    background  is  light  or dark compated to the
  5129.                    foreground.
  5130.  
  5131.      -render alg   Use an internal rendering  algorithm  (default
  5132.                    dither).
  5133.  
  5134.      -gamma int    Gamma correct  the  image  using  the  integet
  5135.                    parameter as a gamma (default 0).
  5136.  
  5137.      -center       Center the image to an 8.5 by 11 page
  5138.  
  5139.      -xpos pos     Move by pos pixels in the x direction.
  5140.  
  5141.      -ypos pos     Move by pos pixels in the y direction.
  5142.  
  5143. 2 References
  5144.      HP PaintJet XL Color Graphics Printer User's Guide
  5145.  
  5146. 2 See_Also
  5147.      pnmdepth, ppmquant, ppmdither, ppm
  5148.  
  5149. 2 Bugs
  5150.      Most of the options have not  been  tested  because  of  the
  5151.      price of the paper.
  5152.  
  5153. 2 Author
  5154.      Copyright (C) 1991 by Christos Zoulas.
  5155.  
  5156. 1 ppmtopuzz
  5157.      ppmtopuzz - convert a portable pixmap into an  X11  "puzzle"
  5158.      file
  5159.  
  5160. 2 Synopsis
  5161.      ppmtopuzz [ppmfile]
  5162.  
  5163. 2 Description
  5164.      Reads a portable pixmap as input.  Produces an X11  "puzzle"
  5165.      file  as output.  A "puzzle" file is for use with the puzzle
  5166.      program included with the  X11  distribution  -  puzzle's  -
  5167.      picture flag lets you specify an image file.
  5168.  
  5169. 2 See_Also
  5170.      ppm, puzzle
  5171.  
  5172. 2 Author
  5173.      Copyright (C) 1991 by Jef Poskanzer.
  5174.  
  5175. 1 ppmtorgb3
  5176.      ppmtorgb3 - separate a portable pixmap into  three  portable
  5177.      graymaps
  5178.  
  5179. 2 Synopsis
  5180.      ppmtorgb3 [ppmfile]
  5181.  
  5182. 2 Description
  5183.      Reads a portable pixmap as  input.   Writes  three  portable
  5184.      graymaps as output, one each for red, green, and blue.
  5185.  
  5186.      The output filenames are constructed  by  taking  the  input
  5187.      filename, stripping off any extension, and appending ".red",
  5188.      ".grn", and ".blu".  For example, separating lenna.ppm would
  5189.      result in lenna.red, lenna.grn, and lenna.blu.  If the input
  5190.      comes from stdin, the names are noname.red, noname.grn,  and
  5191.      noname.blu.
  5192.  
  5193. 2 See_Also
  5194.      rgb3toppm, ppmtopgm, pgmtoppm, ppm, pgm
  5195.  
  5196. 2 Author
  5197.      Copyright (C) 1991 by Jef Poskanzer.
  5198.  
  5199. 1 ppmtosixel
  5200.      ppmtosixel - convert a portable pixmap into DEC sixel format
  5201.  
  5202. 2 Synopsis
  5203.      ppmtosixel [-raw] [-margin] [ppmfile]
  5204.  
  5205. 2 Description
  5206.      Reads a portable pixmap as input.  Produces  sixel  commands
  5207.      (SIX)  as  output.  The output is formatted for color print-
  5208.      ing, e.g. for a DEC LJ250 color inkjet printer.
  5209.  
  5210.      If RGB values from the PPM file do not have maxval=100,  the
  5211.      RGB  values  are  rescaled.   A printer control header and a
  5212.      color assignment table begin the SIX file.   Image  data  is
  5213.      written  in  a compressed format by default.  A printer con-
  5214.      trol footer ends the image file.
  5215.  
  5216. 2 Options
  5217.      -raw If specified, each pixel will be  explicitly  described
  5218.           in  the  image  file.  If -raw is not specified, output
  5219.           will default to compressed format  in  which  identical
  5220.           adjacent  pixels  are  replaced  by "repeat pixel" com-
  5221.           mands.  A raw file  is  often  an  order  of  magnitude
  5222.           larger than a compressed file and prints much slower.
  5223.  
  5224.      -margin
  5225.           If -margin is not specified, the image will be start at
  5226.           the  left  margin  (of the window, paper, or whatever).
  5227.           If -margin is specified, a 1.5 inch  left  margin  will
  5228.           offset the image.
  5229.  
  5230. 2 Printing
  5231.      Generally, sixel files must reach  the  printer  unfiltered.
  5232.      Use the lpr -x option or cat filename > /dev/tty0?.
  5233.  
  5234. 2 Bugs
  5235.      Upon rescaling, truncation of the least significant bits  of
  5236.      RGB values may result in poor color conversion.  If the ori-
  5237.      ginal PPM  maxval  was  greater  than  100,  rescaling  also
  5238.      reduces  the  image depth.  While the actual RGB values from
  5239.      the ppm file are more or less retained, the color palette of
  5240.      the  LJ250  may  not  match the colors on your screen.  This
  5241.      seems to be a printer limitation.
  5242.  
  5243. 2 See_Also
  5244.      ppm
  5245.  
  5246. 2 Author
  5247.      Copyright (C) 1991 by Rick Vinci.
  5248.  
  5249. 1 ppmtotga
  5250.      ppmtotga - convert portable pixmap into a  TrueVision  Targa
  5251.      file
  5252.  
  5253. 2 Synopsis
  5254.      ppmtotga [-mono|-cmap|-rgb] [-norle] [ppmfile]
  5255.  
  5256. 2 Description
  5257.      Reads a portable pixmap as  input.   Produces  a  TrueVision
  5258.      Targa file as output.
  5259.  
  5260. 2 Options
  5261.      -mono
  5262.           Forces Targa file to  be  of  type  8  bit  monochrome.
  5263.           Input must be a portable bitmap or a portable graymap.
  5264.  
  5265.      -cmap
  5266.           Forces Targa file to be of  type  24  bit  colormapped.
  5267.           Input  must be a portable bitmap, a portable graymap or
  5268.           a portable pixmap containing no more than 256  distinct
  5269.           colors.
  5270.  
  5271.      -rgb Forces Targa file to be of type 24 bit unmapped color.
  5272.  
  5273.      -norle
  5274.           Disables run-length encoding, in case you have a  Targa
  5275.           reader which can't read run-length encoded files.
  5276.  
  5277.      All flags can be abbreviated to their shortest  unique  pre-
  5278.      fix.   If  no  file  type  is specified the most highly con-
  5279.      stained compatible type is used, where  monochrome  is  more
  5280.      constained than colormapped which is in turn more constained
  5281.      than unmapped.
  5282.  
  5283. 2 Bugs
  5284.      Does not support all  possible  Targa  file  types.   Should
  5285.      really be in PNM, not PPM.
  5286.  
  5287. 2 See_Also
  5288.      tgatoppm, ppm
  5289.  
  5290. 2 Author
  5291.      Copyright (C) 1989, 1991 by Mark Shand and Jef Poskanzer.
  5292.  
  5293. 1 ppmtouil
  5294.      ppmtouil - convert a portable pixmap into a Motif  UIL  icon
  5295.      file
  5296.  
  5297. 2 Synopsis
  5298.      ppmtouil [-name uilname] [ppmfile]
  5299.  
  5300. 2 Description
  5301.      Reads a portable pixmap as input.  Produces a Motif UIL icon
  5302.      file as output.
  5303.  
  5304.      If the program was compiled with an rgb database  specified,
  5305.      and  a RGB value from the ppm input matches a RGB value from
  5306.      the database, then the corresponding color name mnemonic  is
  5307.      printed  in the UIL's colormap.  If no rgb database was com-
  5308.      piled in, or if the RGB values don't match, then  the  color
  5309.      will  be  printed  with  the  #RGB,  #RRGGBB, #RRRGGGBBB, or
  5310.      #RRRRGGGGBBBB hexadecimal format.
  5311.  
  5312. 2 Options
  5313.      -name
  5314.           Allows you  to  specify  the  prefix  string  which  is
  5315.           printed in the resulting UIL output.  If not specified,
  5316.           will default to the filename (without extension) of the
  5317.           ppmfile  argument.   If  -name  is not specified and no
  5318.           ppmfile is specified (i.e.  piped  input),  the  prefix
  5319.           string will default to the string "noname".
  5320.  
  5321.      All flags can be abbreviated to their shortest  unique  pre-
  5322.      fix.
  5323.  
  5324. 2 See_Also
  5325.      ppm
  5326.  
  5327. 2 Author
  5328.      Converted by Jef Poskanzer from ppmtoxpm.c, which  is  Copy-
  5329.      right (C) 1990 by Mark W. Snitily
  5330.  
  5331. 1 ppmtoxpm
  5332.      ppmtoxpm - convert a portable pixmap into an X11 pixmap
  5333.  
  5334. 2 Synopsis
  5335.      ppmtoxpm [-name xpmname] [ppmfile]
  5336.  
  5337. 2 Description
  5338.      Reads a portable pixmap as input.  Produces X11 pixmap (XPM)
  5339.      as output.
  5340.  
  5341.      If the program was compiled with an rgb database  specified,
  5342.      and  a RGB value from the ppm input matches a RGB value from
  5343.      the database, then the corresponding color name mnemonic  is
  5344.      printed  in the XPM's colormap.  If no rgb database was com-
  5345.      piled in, or if the RGB values don't match, then  the  color
  5346.      will  be  printed  with  the  #RGB,  #RRGGBB, #RRRGGGBBB, or
  5347.      #RRRRGGGGBBBB hexadecimal format.
  5348.  
  5349. 2 Options
  5350.      -name
  5351.           Allows you  to  specify  the  prefix  string  which  is
  5352.           printed in the resulting XPM output.  If not specified,
  5353.           will default to the filename (without extension) of the
  5354.           ppmfile  argument.   If  -name  is not specified and no
  5355.           ppmfile is specified (i.e.  piped  input),  the  prefix
  5356.           string will default to the string "noname".
  5357.  
  5358.      All flags can be abbreviated to their shortest  unique  pre-
  5359.      fix.
  5360.  
  5361. 2 Example
  5362.      To     convert     the     file     "dot"     (found      in
  5363.      /usr/include/X11/bitmaps), from xbm to xpm one could specify
  5364.  
  5365.           xbmtopbm dot | ppmtoxpm -name dot
  5366.  
  5367. 2 Bugs
  5368.      An option to match the closest  (rather  than  exact)  color
  5369.      name  mnemonic  from  the  rgb  text  would  be  a desirable
  5370.      enhancement.
  5371.  
  5372.      Truncation of the least significant bits of a RGB value  may
  5373.      result  in  nonexact  matches  when  performing  color  name
  5374.      mnemonic lookups.
  5375.  
  5376. 2 See_Also
  5377.      xpmtoppm, ppm
  5378.  
  5379. 2 Author
  5380.      Copyright (C) 1990 by Mark W. Snitily.
  5381.  
  5382. 1 ppmtoyuv
  5383.      ppmtoyuv - convert a portable pixmap into an Abekas YUV file
  5384.  
  5385. 2 Synopsis
  5386.      ppmtoyuv [ppmfile]
  5387.  
  5388. 2 Description
  5389.      Reads a portable pixmap as input.  Produces  an  Abekas  YUV
  5390.      file as output.
  5391.  
  5392. 2 See_Also
  5393.      yuvtoppm, ppm
  5394.  
  5395. 2 Author
  5396.      Marc Boucher <marc@PostImage.COM>, based on Example  Conver-
  5397.      sion  Program,  A60/A64 Digital Video Interface Manual, page
  5398.      69.
  5399.  
  5400.      Copyright (C) 1991 by DHD PostImage Inc.
  5401.  
  5402.      Copyright (C) 1987 by Abekas Video Systems Inc.
  5403.  
  5404. 1 ppmtoyuvsplit
  5405.      ppmtoyuvsplit - convert a portable pixmap into 3  subsampled
  5406.      raw YUV files
  5407.  
  5408. 2 Synopsis
  5409.      ppmtoyuvsplit basename [ppmfile]
  5410.  
  5411. 2 Description
  5412.      Reads a portable pixmap as  input.   Produces  3  raw  files
  5413.      basename.Y,  basename.U  and  basename.V  as  output.  These
  5414.      files are the subsampled raw YUV representation of the input
  5415.      pixmap,  as required by the Stanford MPEG codec. The subsam-
  5416.      pling is done by arithmetic mean of  4  pixels  colors  into
  5417.      one.  The  YUV  values  are scaled according to CCIR.601, as
  5418.      assumed by MPEG.
  5419.  
  5420. 2 See_Also
  5421.      mpeg, ppm
  5422.  
  5423. 2 Author
  5424.      Copyright (C) 1993 by  Andre  Beck.  (Andreeck@IRS.Inf.TU-
  5425.      Dresden.de)
  5426.  
  5427.      Based on ppmtoyuv.c
  5428.  
  5429. 1 qrttoppm
  5430.      qrttoppm - convert output from the QRT  ray  tracer  into  a
  5431.      portable pixmap
  5432.  
  5433. 2 Synopsis
  5434.      qrttoppm [qrtfile]
  5435.  
  5436. 2 Description
  5437.      Reads a QRT file as input.  Produces a  portable  pixmap  as
  5438.      output.
  5439.  
  5440. 2 See_Also
  5441.      ppm
  5442.  
  5443. 2 Author
  5444.      Copyright (C) 1989 by Jef Poskanzer.
  5445.  
  5446. 1 rawtoppm
  5447.      rawtoppm - convert raw RGB bytes into a portable pixmap
  5448.  
  5449. 2 Synopsis
  5450.      rawtoppm [-headerskip N]  [-rowskip  N]  [-rgb|-rbg|-grb  |-
  5451.      gbr|-brg|-bgr ] [-interpixel|-interrow] width height [image-
  5452.      data]
  5453.  
  5454. 2 Description
  5455.      Reads raw RGB bytes as input.  Produces a portable pixmap as
  5456.      output.   The  input  file  is  just RGB bytes.  You have to
  5457.      specify the width and height on the command line, since  the
  5458.      program  obviously can't get them from the file.  The maxval
  5459.      is assumed to be 255.  If  the  resulting  image  is  upside
  5460.      down, run it through pnmflip -tb .
  5461.  
  5462. 2 Options
  5463.      -headerskip
  5464.           If the file has a header, you can use this flag to skip
  5465.           over it.
  5466.  
  5467.      -rowskip
  5468.           If there is padding at the ends of the  rows,  you  can
  5469.           skip it with this flag.
  5470.  
  5471.      -rgb -rbg -grb -gbr -brg -bgr
  5472.           These flags let you  specify  alternate  color  orders.
  5473.           The default is -rgb.
  5474.  
  5475.      -interpixel -interrow
  5476.           These flags let you specify how the colors  are  inter-
  5477.           leaved.   The  default  is  -interpixel, meaning inter-
  5478.           leaved by pixel.  A byte of red, a byte of green, and a
  5479.           byte  of  blue,  or whatever color order you specified.
  5480.           -interrow means interleaved by row - a row  of  red,  a
  5481.           row  of  green,  a  row  of blue, assuming standard rgb
  5482.           color order.  An -interplane flag  - all the  red  pix-
  5483.           els,  then  all the green, then all the blue - would be
  5484.           an obvious extension,  but  is  not  implemented.   You
  5485.           could  get  the  same effect by splitting the file into
  5486.           three parts (perhaps using dd), turning each part  into
  5487.           a  PGM file with rawtopgm, and then combining them with
  5488.           rgb3toppm.
  5489.  
  5490. 2 See_Also
  5491.      ppm, rawtopgm, rgb3toppm, pnmflip
  5492.  
  5493. 2 Author
  5494.      Copyright (C) 1991 by Jef Poskanzer.
  5495.  
  5496. 1 rgb3toppm
  5497.      rgb3toppm - combine three portable graymaps into  one  port-
  5498.      able pixmap
  5499.  
  5500. 2 Synopsis
  5501.      rgb3toppm redpgmfile greenpgmfile bluepgmfile
  5502.  
  5503. 2 Description
  5504.      Reads three portable graymaps as input.  Combines  them  and
  5505.      produces one portable pixmap as output.
  5506.  
  5507. 2 See_Also
  5508.      ppmtorgb3, pgmtoppm, ppmtopgm, ppm, pgm
  5509.  
  5510. 2 Author
  5511.      Copyright (C) 1991 by Jef Poskanzer.
  5512.  
  5513. 1 sldtoppm
  5514.      sldtoppm - convert an AutoCAD slide  file  into  a  portable
  5515.      pixmap
  5516.  
  5517. 2 Synopsis
  5518.      sldtoppm [-adjust] [-dir] [-height|-ysize s] [-info] [-
  5519.               lib|-Lib name] [-scale s] [-verbose] [-width|-xsize
  5520.               s] [slidefile]
  5521.  
  5522. 2 Description
  5523.      Reads an AutoCAD(Reg.) slide file  and  outputs  a  portable
  5524.      pixmap.   If  no  slidefile is specified, input is read from
  5525.      standard input.  The ppmdraw library is used to convert  the
  5526.      vector  and  polygon information in the slide file to a pix-
  5527.      map; see the file ppmdraw.h for details on this package.
  5528.  
  5529. 2 Options
  5530.      -adjust
  5531.           If the display on which the slide file was created  had
  5532.           non-square  pixels,  when  the  slide is processed with
  5533.           sldtoppm and the -adjust option  is  not  present,  the
  5534.           following warning will appear:
  5535.             Warning - pixels on source screen were non-square.
  5536.             Specifying -adjust will correct image width  to  com-
  5537.             pensate.
  5538.           Specifying the -adjust option causes sldtoppm to  scale
  5539.           the  width of the image so that pixels in the resulting
  5540.           portable pixmap are square (and hence circles appear as
  5541.           true  circles, not ellipses).  The scaling is performed
  5542.           in  the  vector  domain,  before  scan  converting  the
  5543.           objects.   The  results  are,  therefore,  superior  in
  5544.           appearance to what you'd obtain were you to perform the
  5545.           equivalent  scaling  with pnmscale after the bitmap had
  5546.           been created.
  5547.  
  5548.      -dir The input is assumed to be  an  AutoCAD  slide  library
  5549.           file.  A directory listing each slide in the library is
  5550.           printed on standard error.
  5551.  
  5552.      -height size
  5553.           Scales the image in the vector domain  so  it  is  size
  5554.           pixels  in  height.   If  no -width or -xsize option is
  5555.           specified, the width will be adjusted to  preserve  the
  5556.           pixel aspect ratio.
  5557.  
  5558.      -info
  5559.           Dump the slide file header on standard error,  display-
  5560.           ing  the  original  screen  size and aspect ratio among
  5561.           other information.
  5562.  
  5563.      -lib name
  5564.           Extracts the slide with the given name from  the  slide
  5565.           library  given  as  input.   The specified name is con-
  5566.           verted to upper case.
  5567.  
  5568.      -Lib name
  5569.           Extracts the slide with the given name from  the  slide
  5570.           library  given  as  input.  The name is used exactly as
  5571.           specified; it is not converted to upper case.
  5572.  
  5573.      -scale s
  5574.           Scales the image by factor s, which may be any floating
  5575.           point  value  greater than zero.  Scaling is done after
  5576.           aspect ratio adjustment, if any.  Since scaling is per-
  5577.           formed  in the vector domain, before rasterisation, the
  5578.           results look much better than  running  the  output  of
  5579.           sldtoppm through pnmscale.
  5580.  
  5581.      -verbose
  5582.           Dumps the slide file header and lists every vector  and
  5583.           polygon in the file on standard error.
  5584.  
  5585.      -width size
  5586.           Scales the image in the vector domain  so  it  is  size
  5587.           pixels  wide.  If no -height or -ysize option is speci-
  5588.           fied, the height will be adjusted to preserve the pixel
  5589.           aspect ratio.
  5590.  
  5591.      -xsize size
  5592.           Scales the image in the vector domain  so  it  is  size
  5593.           pixels  wide.  If no -height or -ysize option is speci-
  5594.           fied, the height will be adjusted to preserve the pixel
  5595.           aspect ratio.
  5596.  
  5597.      -ysize size
  5598.           Scales the image in the vector domain  so  it  is  size
  5599.           pixels  in  height.   If  no -width or -xsize option is
  5600.           specified, the width will be adjusted to  preserve  the
  5601.           pixel aspect ratio.
  5602.  
  5603.      All flags can be abbreviated to their shortest  unique  pre-
  5604.      fix.
  5605.  
  5606. 2 Bugs
  5607.      Only Level 2 slides are converted.  Level 1 format has  been
  5608.      obsolete  since the advent of AutoCAD Release 9 in 1987, and
  5609.      was not portable across machine architectures.
  5610.  
  5611.      Slide library items with names containing  8  bit  (such  as
  5612.      ISO)  or  16  bit (Kanji, for example) characters may not be
  5613.      found when chosen with the -lib option unless  sldtoppm  has
  5614.      been built with character set conversion functions appropri-
  5615.      ate to the locale.  You  can  always  retrieve  slides  from
  5616.      libraries  regardless of the character set by using the -Lib
  5617.      option and specifying the precise name  of  library  member.
  5618.      Use  the  -dir  option  to  list  the slides in a library if
  5619.      you're unsure of the exact name.
  5620.  
  5621. 2 See_Also
  5622.      AutoCAD Reference Manual: Slide  File  Format,  pnmscale,
  5623.      ppm
  5624.  
  5625. 2 Author
  5626.           John Walker
  5627.           Autodesk SA
  5628.           Avenue des Champs-Montants 14b
  5629.           CH-2074 MARIN
  5630.           Suisse/Schweiz/Svizzera/Svizra/Switzerland
  5631.           Usenet:  kelvin@Autodesk.com
  5632.           Fax:     038/33 88 15
  5633.           Voice:   038/33 76 33
  5634.  
  5635.      Permission  to  use,  copy,  modify,  and  distribute   this
  5636.      software  and  its documentation for any purpose and without
  5637.      fee is hereby granted, without any  conditions  or  restric-
  5638.      tions.   This software is provided ``as is'' without express
  5639.      or implied warranty.
  5640.  
  5641.      AutoCAD and Autodesk are registered trademarks of  Autodesk,
  5642.      Inc.
  5643.  
  5644. 1 spctoppm
  5645.      spctoppm - convert an Atari compressed Spectrum file into  a
  5646.      portable pixmap
  5647.  
  5648. 2 Synopsis
  5649.      spctoppm [spcfile]
  5650.  
  5651. 2 Description
  5652.      Reads an Atari compressed Spectrum file as input.   Produces
  5653.      a portable pixmap as output.
  5654.  
  5655. 2 See_Also
  5656.      sputoppm, ppm
  5657.  
  5658. 2 Author
  5659.      Copyright (C) 1991 by Steve Belczyk (seb3@gte.com)  and  Jef
  5660.      Poskanzer.
  5661.  
  5662. 1 sputoppm
  5663.      sputoppm - convert an Atari uncompressed Spectrum file  into
  5664.      a portable pixmap
  5665.  
  5666. 2 Synopsis
  5667.      sputoppm [spufile]
  5668.  
  5669. 2 Description
  5670.      Reads an Atari uncompressed Spectrum file  as  input.   Pro-
  5671.      duces a portable pixmap as output.
  5672.  
  5673. 2 See_Also
  5674.      spctoppm, ppm
  5675.  
  5676. 2 Author
  5677.      Copyright (C) 1991 by Steve Belczyk (seb3@gte.com)  and  Jef
  5678.      Poskanzer.
  5679.  
  5680. 1 tgatoppm
  5681.      tgatoppm - convert TrueVision Targa  file  into  a  portable
  5682.      pixmap
  5683.  
  5684. 2 Synopsis
  5685.      tgatoppm [-debug] [tgafile]
  5686.  
  5687. 2 Description
  5688.      Reads a TrueVision Targa file as input.  Produces a portable
  5689.      pixmap as output.
  5690.  
  5691. 2 Options
  5692.      -debug
  5693.           Causes the header information to be dumped to stderr.
  5694.  
  5695.      All flags can be abbreviated to their shortest  unique  pre-
  5696.      fix.  Should really be in PNM, not PPM.
  5697.  
  5698. 2 See_Also
  5699.      ppmtotga, ppm
  5700.  
  5701. 2 Author
  5702.      Partially based on tga2rast, version 1.0,  by  Ian  J.  Mac-
  5703.      Phedran.
  5704.  
  5705.      Copyright (C) 1989 by Jef Poskanzer.
  5706.  
  5707. 1 ximtoppm
  5708.      ximtoppm - convert an Xim file into a portable pixmap
  5709.  
  5710. 2 Synopsis
  5711.      ximtoppm [ximfile]
  5712.  
  5713. 2 Description
  5714.      Reads an Xim file as input.  Produces a portable  pixmap  as
  5715.      output.   The Xim toolkit is included in the contrib tree of
  5716.      the X.V11R4 release.
  5717.  
  5718. 2 See_Also
  5719.      ppm
  5720.  
  5721. 2 Author
  5722.      Copyright (C) 1991 by Jef Poskanzer.
  5723.  
  5724. 1 xpmtoppm
  5725.      xpmtoppm - convert an X11 pixmap into a portable pixmap
  5726.  
  5727. 2 Synopsis
  5728.      xpmtoppm [xpmfile]
  5729.  
  5730. 2 Description
  5731.      Reads an X11 pixmap (XPM) as  input.   Produces  a  portable
  5732.      pixmap as output.
  5733.  
  5734. 2 See_Also
  5735.      ppmtoxpm, ppm
  5736.  
  5737. 2 Author
  5738.      Copyright (C) 1991 by Jef Poskanzer.
  5739.  
  5740. 1 yuvtoppm
  5741.      yuvtoppm - convert Abekas YUV bytes into a portable pixmap
  5742.  
  5743. 2 Synopsis
  5744.      yuvtoppm width height [imagedata]
  5745.  
  5746. 2 Description
  5747.      Reads raw Abekas YUV bytes as input.   Produces  a  portable
  5748.      pixmap  as  output.   The input file is just YUV bytes.  You
  5749.      have to specify the width and height on  the  command  line,
  5750.      since  the  program  obviously can't get them from the file.
  5751.      The maxval is assumed to be 255.
  5752.  
  5753. 2 See_Also
  5754.      ppmtoyuv, ppm
  5755.  
  5756. 2 Author
  5757.      Marc Boucher <marc@PostImage.COM>, based on Example  Conver-
  5758.      sion  Program,  A60/A64 Digital Video Interface Manual, page
  5759.      69.
  5760.  
  5761.      Copyright (C) 1991 by DHD PostImage Inc.
  5762.  
  5763.      Copyright (C) 1987 by Abekas Video Systems Inc.
  5764.  
  5765. 1 yuvsplittoppm
  5766.      yuvplittoppm - convert a Y- an U- and a V-file into a  port-
  5767.      able pixmap.
  5768.  
  5769. 2 Synopsis
  5770.      yuvsplittoppm basename width height [-ccir601]
  5771.  
  5772. 2 Description
  5773.      Reads three files, containing the YUV components, as  input.
  5774.      These  files  are  basename .Y,  basename.U and basename.V .
  5775.      Produces a portable pixmap on stdout.
  5776.  
  5777.      Since the YUV files are raw files, the dimensions width  and
  5778.      height must be specified on the command line.
  5779.  
  5780. 2 Options
  5781.      -ccir601
  5782.           Assumes that the  YUV  triplets  are  scaled  into  the
  5783.           smaller  range  of  the CCIR 601 (MPEG) standard. Else,
  5784.           the JFIF (JPEG) standard is assumed.
  5785.  
  5786. 2 See_Also
  5787.      ppmtoyuvsplit, yuvtoppm, ppm
  5788.  
  5789. 2 Author
  5790.      Marcel    Wijkstra    <wijkstra@fwi.uva.nl>,    based     on
  5791.      ppmtoyuvsplit.
  5792.  
  5793. 1 ppmforge
  5794.      ppmforge - fractal forgeries of clouds, planets, and  starry
  5795.      skies
  5796.  
  5797. 2 Synopsis
  5798.      ppmforge [-clouds] [-night] [-dimension dimen] [-hour hour]
  5799.               [-inclination|-tilt angle] [-mesh size] [-power
  5800.               factor] [-glaciers level] [-ice level] [-saturation
  5801.               sat] [-seed seed] [-stars fraction] [-xsize|-width
  5802.               width] [-ysize|-height height]
  5803.  
  5804. 2 Description
  5805.      ppmforge generates three  kinds  of  ``random  fractal  for-
  5806.      geries,'' the term coined by Richard F. Voss of the IBM Tho-
  5807.      mas J. Watson Research Center for seemingly  realistic  pic-
  5808.      tures  of natural objects generated by simple algorithms em-
  5809.      bodying randomness and fractal self-similarity.   The  tech-
  5810.      niques  used  by  ppmforge  are  essentially  those given by
  5811.      Voss[1], particularly the technique  of  spectral  synthesis
  5812.      explained in more detail by Dietmar Saupe[2].
  5813.  
  5814.      The program generates two varieties of pictures: planets and
  5815.      clouds, which are just different renderings of data generat-
  5816.      ed in an identical manner, illustrating  the  unity  of  the
  5817.      fractal  structure of these very different objects.  A third
  5818.      type of picture, a starry sky, is synthesised directly  from
  5819.      pseudorandom numbers.
  5820.  
  5821.      The generation of planets or clouds begins with the prepara-
  5822.      tion  of  an  array  of random data in the frequency domain.
  5823.      The size of this array, the ``mesh size,'' can be  set  with
  5824.      the -mesh option; the larger the mesh the more realistic the
  5825.      pictures but the calculation time and memory requirement in-
  5826.      creases  as the square of the mesh size.  The fractal dimen-
  5827.      sion, which you can  specify  with  the  -dimension  option,
  5828.      determines the roughness of the terrain on the planet or the
  5829.      scale of detail in the clouds.  As the fractal dimension  is
  5830.      increased, more high frequency components are added into the
  5831.      random mesh.
  5832.  
  5833.      Once the mesh  is  generated,  an  inverse  two  dimensional
  5834.      Fourier  transform  is performed upon it.  This converts the
  5835.      original random frequency domain data  into  spatial  ampli-
  5836.      tudes.   We  scale  the real components that result from the
  5837.      Fourier transform into numbers from 0 to 1  associated  with
  5838.      each  point on the mesh.  You can further modify this number
  5839.      by applying a ``power law scale'' to it with the -power  op-
  5840.      tion.    Unity  scale leaves the numbers unmodified; a power
  5841.      scale of 0.5 takes the square root of  the  numbers  in  the
  5842.      mesh,  while  a power scale of 3 replaces the numbers in the
  5843.      mesh with their cubes.  Power law scaling is best envisioned
  5844.      by  thinking  of  the  data as representing the elevation of
  5845.      terrain; powers less than 1 yield landscapes  with  vertical
  5846.      scarps  that  look  like  glacially-carved  valleys;  powers
  5847.      greater than one make  fairy-castle  spires  (which  require
  5848.      large mesh sizes and high resolution for best results).
  5849.  
  5850.      After these calculations, we have a array of  the  specified
  5851.      size containing numbers that range from 0 to 1.  The pixmaps
  5852.      are generated as follows:
  5853.  
  5854.      Clouds    A colour map is created that ranges from pure blue
  5855.                to white by increasing admixture (desaturation) of
  5856.                blue  with  white.   Numbers  less  than  0.5  are
  5857.                coloured  blue,  numbers  between  0.5 and 1.0 are
  5858.                coloured with corresponding levels of white,  with
  5859.                1.0 being pure white.
  5860.  
  5861.      Planet    The mesh is projected onto a sphere.  Values  less
  5862.                than  0.5  are treated as water and values between
  5863.                0.5 and 1.0 as land.  The water areas are coloured
  5864.                based  upon the water depth, and land based on its
  5865.                elevation.  The random  depth  data  are  used  to
  5866.                create  clouds over the oceans.  An atmosphere ap-
  5867.                proximately like the  Earth's  is  simulated;  its
  5868.                light  absorption  is  calculated to create a blue
  5869.                cast around the limb of the  planet.   A  function
  5870.                that  rises from 0 to 1 based on latitude is modu-
  5871.                lated by the local elevation to generate polar ice
  5872.                caps--high   altitude   terrain  carries  glaciers
  5873.                farther from the pole.  Based on the  position  of
  5874.                the  star  with  respect  to the observer, the ap-
  5875.                parent colour of each pixel of the planet is  cal-
  5876.                culated by ray-tracing from the star to the planet
  5877.                to the observer and applying a lighting model that
  5878.                sums  ambient  light  and  diffuse reflection (for
  5879.                most planets ambient light is zero, as their  pri-
  5880.                mary  star  is  the  only source of illumination).
  5881.                Additional random data are used to generate  stars
  5882.                around the planet.
  5883.  
  5884.      Night     A sequence of pseudorandom numbers is used to gen-
  5885.                erate stars with a user specified density.
  5886.  
  5887.      Cloud pictures always contain 256 or fewer colours  and  may
  5888.      be  displayed  on most colour mapped devices without further
  5889.      processing.  Planet pictures often contain tens of thousands
  5890.      of  colours  which  must  be  compressed  with  ppmquant  or
  5891.      ppmdither before encoding in a colour mapped format.  If the
  5892.      display  resolution is high enough, ppmdither generally pro-
  5893.      duces better looking  planets.   ppmquant  tends  to  create
  5894.      discrete colour bands, particularly in the oceans, which are
  5895.      unrealistic and distracting.  The number of colours in star-
  5896.      ry  sky pictures generated with the -night option depends on
  5897.      the value specified for -saturation.  Small values limit the
  5898.      colour  temperature distribution of the stars and reduce the
  5899.      number of colours in the image.  If the -saturation  is  set
  5900.      to  0,  none of the stars will be coloured and the resulting
  5901.      image will never contain more than 256 colours.   Night  sky
  5902.      pictures  with  many  different star colours often look best
  5903.      when colour compressed by pnmdepth rather than  ppmquant  or
  5904.      ppmdither.   Try  newmaxval  settings  of 63, 31, or 15 with
  5905.      pnmdepth to reduce the number of colours in the  picture  to
  5906.      256 or fewer.
  5907.  
  5908. 2 Options
  5909.      -clouds   Generate clouds.  A pixmap of  fractal  clouds  is
  5910.                generated.   Selecting clouds sets the default for
  5911.                fractal dimension to 2.15 and power  scale  factor
  5912.                to 0.75.
  5913.  
  5914.      -dimension dimen
  5915.                Sets the fractal dimension to the specified dimen,
  5916.                which  may  be  any floating point value between 0
  5917.                and 3.   Higher  fractal  dimensions  create  more
  5918.                ``chaotic''  images,  which require higher resolu-
  5919.                tion output and a larger FFT  mesh  size  to  look
  5920.                good.   If  no dimension is specified, 2.4 is used
  5921.                when generating planets and 2.15 for clouds.
  5922.  
  5923.      -glaciers level
  5924.                The floating point level setting controls the  ex-
  5925.                tent  to which terrain elevation causes ice to ap-
  5926.                pear at lower latitudes.   The  default  value  of
  5927.                0.75  makes the polar caps extend toward the equa-
  5928.                tor across high terrain and forms glaciers in  the
  5929.                highest  mountains,  as  on  Earth.  Higher values
  5930.                make ice sheets that cover more and  more  of  the
  5931.                land  surface,  simulating planets in the midst of
  5932.                an ice age.   Lower  values  tend  to  be  boring,
  5933.                resulting in unrealistic geometrically-precise ice
  5934.                cap boundaries.
  5935.  
  5936.      -hour hour
  5937.                When generating a planet,  hour  is  used  as  the
  5938.                ``hour  angle  at  the central meridian.''  If you
  5939.                specify -hour 12, for example, the planet will  be
  5940.                fully  illuminated,  corresponding to high noon at
  5941.                the longitude at the centre of  the  screen.   You
  5942.                can specify any floating point value between 0 and
  5943.                24 for hour, but values which place  most  of  the
  5944.                planet in darkness (0 to 4 and 20 to 24) result in
  5945.                crescents which, while pretty, don't give you many
  5946.                illuminated  pixels  for  the  amount of computing
  5947.                that's required.  If no -hour option is specified,
  5948.                a random hour angle is chosen, biased so that only
  5949.                25% of the images generated will be crescents.
  5950.  
  5951.      -ice level
  5952.                Sets the extent of the polar ice caps to the given
  5953.                floating  point  level.   The default level of 0.4
  5954.                produces ice caps similar to those of  the  Earth.
  5955.                Smaller  values  reduce  the  amount of ice, while
  5956.                larger -ice settings  create  more  prominent  ice
  5957.                caps.   Sufficiently  large values, such as 100 or
  5958.                more, in conjunction with  small  settings  for  -
  5959.                glaciers (try 0.1) create ``ice balls'' like Euro-
  5960.                pa.
  5961.  
  5962.      -inclination|-tilt angle
  5963.                The inclination angle of the planet with regard to
  5964.                its primary star is set to angle, which can be any
  5965.                floating point value from -90 to 90.  The inclina-
  5966.                tion angle can be thought of as specifying, in de-
  5967.                grees, the ``season'' the planet is presently  ex-
  5968.                periencing  or,  more  precisely,  the latitude at
  5969.                which the star transits the zenith at local  noon.
  5970.                If  0,  the  planet  is  at  equinox;  the star is
  5971.                directly overhead at the equator.  Positive values
  5972.                represent summer in the northern hemisphere, nega-
  5973.                tive values summer  in  the  southern  hemisphere.
  5974.                The  Earth's  inclination  angle,  for example, is
  5975.                about  23.5  at  the  June  solstice,  0  at   the
  5976.                equinoxes in March and September, and -23.5 at the
  5977.                December solstice.  If  no  inclination  angle  is
  5978.                specified,  a  random value between -21.6 and 21.6
  5979.                degrees is chosen.
  5980.  
  5981.      -mesh size
  5982.                A mesh of size by size will be used for  the  fast
  5983.                Fourier  transform  (FFT).   Note  that memory re-
  5984.                quirements and computation speed increase  as  the
  5985.                square  of  size; if you double the mesh size, the
  5986.                program will use four times  the  memory  and  run
  5987.                four  times as long.  The default mesh is 256x256,
  5988.                which produces reasonably  good  looking  pictures
  5989.                while  using half a megabyte for the 256x256 array
  5990.                of single precision complex  numbers  required  by
  5991.                the  FFT.  On machines with limited memory capaci-
  5992.                ty, you may have to reduce the mesh size to  avoid
  5993.                running out of RAM.  Increasing the mesh size pro-
  5994.                duces better looking pictures; the difference  be-
  5995.                comes particularly noticeable when generating high
  5996.                resolution images with relatively high fractal di-
  5997.                mensions (between 2.2 and 3).
  5998.  
  5999.      -night    A starry sky is generated.  The stars are  created
  6000.                by the same algorithm used for the stars that sur-
  6001.                round planet pictures, but the output consists ex-
  6002.                clusively of stars.
  6003.  
  6004.      -power factor
  6005.                Sets the ``power factor'' used to scale elevations
  6006.                synthesised  from  the FFT to factor, which can be
  6007.                any floating point number greater than  zero.   If
  6008.                no factor is specified a default of 1.2 is used if
  6009.                a planet is being generated, or 0.75 if clouds are
  6010.                selected by the -clouds option.  The result of the
  6011.                FFT image  synthesis  is  an  array  of  elevation
  6012.                values  between 0 and 1.  A non-unity power factor
  6013.                exponentiates each  of  these  elevations  to  the
  6014.                specified power.  For example, a power factor of 2
  6015.                squares each value, while a power  factor  of  0.5
  6016.                replaces  each  with  its square root.  (Note that
  6017.                exponentiating  values  between  0  and  1  yields
  6018.                values that remain within that range.)  Power fac-
  6019.                tors less than 1 emphasise  large-scale  elevation
  6020.                changes at the expense of small variations.  Power
  6021.                factors greater than 1 increase the  roughness  of
  6022.                the terrain and, like high fractal dimensions, may
  6023.                require a  larger  FFT  mesh  size  and/or  higher
  6024.                screen resolution to look good.
  6025.  
  6026.      -saturation sat
  6027.                Controls the degree of colour  saturation  of  the
  6028.                stars that surround planet pictures and fill star-
  6029.                ry skies created with the -night option.  The  de-
  6030.                fault  value  of  125 creates stars which resemble
  6031.                the sky as seen by the human eye from Earth's sur-
  6032.                face.   Stars are dim; only the brightest activate
  6033.                the cones in the human retina, causing  colour  to
  6034.                be  perceived.   Higher  values of sat approximate
  6035.                the appearance of stars from  Earth  orbit,  where
  6036.                better  dark  adaptation,  absence of skyglow, and
  6037.                the concentration of light from a given star  onto
  6038.                a smaller area of the retina thanks to the lack of
  6039.                atmospheric turbulence enhances the perception  of
  6040.                colour.   Values greater than 250 create ``science
  6041.                fiction'' skies that, while pretty, don't occur in
  6042.                this universe.
  6043.  
  6044.                Thanks to the inverse  square  law  combined  with
  6045.                Nature's  love of mediocrity, there are many, many
  6046.                dim stars for every bright one.   This  population
  6047.                relationship  is accurately reflected in the skies
  6048.                created by ppmforge.  Dim,  low  mass  stars  live
  6049.                much longer than bright massive stars, consequent-
  6050.                ly there are many reddish stars for every blue gi-
  6051.                ant.   This relationship is preserved by ppmforge.
  6052.                You can reverse the proportion, simulating the sky
  6053.                as  seen  in  a  starburst galaxy, by specifying a
  6054.                negative sat value.
  6055.  
  6056.      -seed num Sets the seed for the random number  generator  to
  6057.                the  integer  num.   The  seed used to create each
  6058.                picture is displayed on  standard  output  (unless
  6059.                suppressed with the -quiet option).  Pictures gen-
  6060.                erated with the same seed will be  identical.   If
  6061.                no  -seed is specified, a random seed derived from
  6062.                the date and time will be chosen.   Specifying  an
  6063.                explicit  seed  allows  you to re-render a picture
  6064.                you particularly like at a  higher  resolution  or
  6065.                with different viewing parameters.
  6066.  
  6067.      -stars fraction
  6068.                Specifies the percentage of pixels, in tenths of a
  6069.                percent,  which  will appear as stars, either sur-
  6070.                rounding a planet or filling the entire  frame  if
  6071.                -night is specified.  The default fraction is 100.
  6072.  
  6073.      -xsize|-width width
  6074.                Sets the width of the  generated  image  to  width
  6075.                pixels.   The default width is 256 pixels.  Images
  6076.                must be at least as wide as they are  high;  if  a
  6077.                width  less  than the height is specified, it will
  6078.                be increased to equal the  height.   If  you  must
  6079.                have  a long skinny pixmap, make a square one with
  6080.                ppmforge, then use pnmcut to extract a portion  of
  6081.                the shape and size you require.
  6082.  
  6083.      -ysize|-height height
  6084.                Sets the height of the generated image  to  height
  6085.                pixels.  The default height is 256 pixels.  If the
  6086.                height specified exceeds the width, the width will
  6087.                be increased to equal the height.
  6088.  
  6089.      All flags can be abbreviated to their shortest  unique  pre-
  6090.      fix.
  6091.  
  6092. 2 Bugs
  6093.      The algorithms require the output pixmap to be at  least  as
  6094.      wide  as  it  is high, and the width to be an even number of
  6095.      pixels.  These constraints are enforced  by  increasing  the
  6096.      size of the requested pixmap if necessary.
  6097.  
  6098.      You may have to reduce the FFT mesh size on machines with 16
  6099.      bit integers and segmented pointer architectures.
  6100.  
  6101. 2 See_Also
  6102.      pnmcut, pnmdepth, ppmdither, ppmquant, ppm
  6103.  
  6104.      [1]  Voss, Richard  F.,  ``Random  Fractal  Forgeries,''  in
  6105.           Earnshaw  et.  al., Fundamental Algorithms for Computer
  6106.           Graphics, Berlin: Springer-Verlag, 1985.
  6107.  
  6108.      [2]  Peitgen, H.-O., and Saupe,  D.  eds.,  The  Science  Of
  6109.           Fractal Images, New York: Springer Verlag, 1988.
  6110.  
  6111. 2 Author
  6112.           John Walker
  6113.           Autodesk SA
  6114.           Avenue des Champs-Montants 14b
  6115.           CH-2074 MARIN
  6116.           Suisse/Schweiz/Svizzera/Svizra/Switzerland
  6117.           Usenet:  kelvin@Autodesk.com
  6118.           Fax:     038/33 88 15
  6119.           Voice:   038/33 76 33
  6120.  
  6121.      Permission  to  use,  copy,  modify,  and  distribute   this
  6122.      software  and  its documentation for any purpose and without
  6123.      fee is hereby granted, without any  conditions  or  restric-
  6124.      tions.   This software is provided ``as is'' without express
  6125.      or implied warranty.
  6126.  
  6127.      PLUGWARE! If you like this kind of stuff, you may also enjoy
  6128.      ``James Gleick's Chaos--The Software'' for MS-DOS, available
  6129.      for $59.95 from your local software store or  directly  from
  6130.      Autodesk,  Inc.,  Attn:  Science Series, 2320 Marinship Way,
  6131.      Sausalito, CA 94965, USA.  Telephone: (800)  688-2344  toll-
  6132.      free  or,  outside  the  U.S. (415) 332-2344 Ext 4886.  Fax:
  6133.      (415) 289-4718.  ``Chaos--The  Software''  includes  a  more
  6134.      comprehensive   fractal   forgery  generator  which  creates
  6135.      three-dimensional landscapes as well as clouds and  planets,
  6136.      plus five more modules which explore other aspects of Chaos.
  6137.      The user guide of more than 200 pages includes an  introduc-
  6138.      tion by James Gleick and detailed explanations by Rudy Ruck-
  6139.      er of the mathematics and algorithms used by each program.
  6140.  
  6141. 1 ppmpat
  6142.      ppmpat - make a pretty pixmap
  6143.  
  6144. 2 Synopsis
  6145.      ppmpat   -gingham2|-g2|-gingham3|   -g3|-madras|-tartan|   -
  6146.      poles|-squig|-camo| -anticamo width height
  6147.  
  6148. 2 Description
  6149.      Produces a  portable  pixmap  of  the  specified  width  and
  6150.      height, with a pattern in it.
  6151.  
  6152.      This program is mainly to demonstrate  use  of  the  ppmdraw
  6153.      routines,  a  simple  but powerful drawing library.  See the
  6154.      ppmdraw.h include file for more info  on  using  these  rou-
  6155.      tines.   Still,  some  of the patterns can be rather pretty.
  6156.      If you have  a  color  workstation,  something  like  ppmpat
  6157.      -squig  300  300 | ppmquant 128 should generate a nice back-
  6158.      ground.
  6159.  
  6160. 2 Options
  6161.      The different flags specify various different pattern types:
  6162.  
  6163.      -gingham2
  6164.           A gingham check pattern.  Can be tiled.
  6165.  
  6166.      -gingham3
  6167.           A slightly more complicated gingham.  Can be tiled.
  6168.  
  6169.      -madras
  6170.           A madras plaid.  Can be tiled.
  6171.  
  6172.      -tartan
  6173.           A tartan plaid.  Can be tiled.
  6174.  
  6175.      -poles
  6176.           Color gradients centered on randomly-placed poles.  May
  6177.           need to be run through ppmquant.
  6178.  
  6179.      -squig
  6180.           Squiggley tubular pattern.  Can be tiled.  May need  to
  6181.           be run through ppmquant.
  6182.  
  6183.      -camo
  6184.           Camouflage  pattern.   May  need  to  be  run   through
  6185.           ppmquant.
  6186.  
  6187.      -anticamo
  6188.           Anti-camouflage pattern - like -camo, but  ultra-bright
  6189.           colors.  May need to be run through ppmquant.
  6190.  
  6191.      All flags can be abbreviated to their shortest  unique  pre-
  6192.      fix.
  6193.  
  6194. 2 References
  6195.      Some of the patterns are from "Designer's Guide to Color  3"
  6196.      by Jeanne Allen.
  6197.  
  6198. 2 See_Also
  6199.      pnmtile, ppmquant, ppm
  6200.  
  6201. 2 Author
  6202.      Copyright (C) 1989 by Jef Poskanzer.
  6203.  
  6204. 1 ppmqvga
  6205.      ppmqvga - 8 plane quantization
  6206.  
  6207. 2 Synopsis
  6208.      ppmqvga [ options ] [ input file ]
  6209.  
  6210. 2 Description
  6211.      ppmqvga quantizes PPM  files  to  8  planes,  with  optional
  6212.      Floyd-Steinberg  dithering.   Input  is  a PPM file from the
  6213.      file named, or standard input of no file is provided.
  6214.  
  6215. 2 Options
  6216.      -d dither. Apply Floyd-Steinberg dithering to the data
  6217.  
  6218.      -q quiet. Produces no progress reporting,  and  no  terminal
  6219.      output unless and error occurs.
  6220.  
  6221.      -v verbose. Produces additional output describing the number
  6222.      of  colors found, and some information on the resulting map-
  6223.      ping. May be repeated to generate loads  of  internal  table
  6224.      output, but generally only useful once.
  6225.  
  6226. 2 Examples
  6227.      ppmqvga -d mymage.ppm | ppmtogif >mymage.gif
  6228.  
  6229.      tgatoppm zombie.tga | ppmqvga | ppmtotif > zombie.tif
  6230.  
  6231. 2 See_Also
  6232.      ppmquant
  6233.  
  6234. 2 Diagnostics
  6235.      Error messages if problems, various levels of optional  pro-
  6236.      gress reporting.
  6237.  
  6238. 2 Limitations
  6239.      none known.
  6240.  
  6241. 2 Author
  6242.      Original by Lyle Rains (lrains@netcom.com)  as  ppmq256  and
  6243.      ppmq256fs  combined, documented, and enhanced by Bill David-
  6244.      sen (davidsen@crd.ge.com)
  6245.  
  6246.      Copyright 1991,1992 by Bill Davidsen, all  rights  reserved.
  6247.      The  program  and documentation may be freely distributed by
  6248.      anyone in source or binary format. Please clearly  note  any
  6249.      changes.
  6250.  
  6251. 1 ppmtomap
  6252.      ppmtomap - extract all colors from a portable pixmap
  6253.  
  6254. 2 Synopsis
  6255.      ppmtomap [-sort] [-square] [ppmfile]
  6256.  
  6257. 2 Description
  6258.      Reads a portable pixmap as input.  Produces a portable  pix-
  6259.      map  as  output, representing a color map of the input file.
  6260.      All N different colors found are put in an Nx1 portable pix-
  6261.      map.   This  color  map  file  can  be used as a mapfile for
  6262.      ppmquant or ppmtogif.
  6263.  
  6264. 2 Options
  6265.      -sort
  6266.           Produces a portable pixmap  with  the  colors  in  some
  6267.           sorted order.
  6268.  
  6269.      -square
  6270.           Produces a (more or less) square output  file,  instead
  6271.           of putting all colors on the top row.
  6272.  
  6273.      All flags can be abbreviated to their shortest  unique  pre-
  6274.      fix.
  6275.  
  6276. 2 WARNING
  6277.      If you want to use the output file as a mapfile  for  ppmto-
  6278.      gif,  you first have to do a ppmquant 256, since ppmtomap is
  6279.      not limited to 256 colors (but to 65536).
  6280.  
  6281. 2 See_Also
  6282.      ppmtogif, ppmquant, ppm
  6283.  
  6284. 2 Author
  6285.      Marcel Wijkstra (wijkstra@fwi.uva.nl).
  6286.  
  6287.      Copyright (C) 1989 by Jef Poskanzer.
  6288.  
  6289. 1 ppmtopjxl
  6290.      ppmtopjxl - convert a portable pixmap into an HP PaintJet XL
  6291.      PCL file
  6292.  
  6293. 2 Synopsis
  6294.      ppmtopjxl [-nopack] [-gamma <n>  ]  [-presentation]  [-dark]
  6295.      [-diffuse]  [-cluster] [-dither] [-xshift <s> ] [-yshift <s>
  6296.      ] [-xshift <s> ] [-yshift <s> ] [-xsize|-width|-xscale <s> ]
  6297.      [-ysize|-height|-yscale <s> ] [ppmfile]
  6298.  
  6299.  
  6300. 2 Description
  6301.      Reads a portable pixmap as input.  Produces a PCL file suit-
  6302.      able for printing on an HP PaintJet XL printer as output.
  6303.  
  6304.      The generated file is not suitable for printing on a  normal
  6305.      PrintJet printer.  The -nopack option generates a file which
  6306.      does not use the normal TIFF 4.0  compression  method.  This
  6307.      file might be printable on a normal PaintJet printer (not an
  6308.      XL).
  6309.  
  6310.      The -gamma option sets the gamma correction for  the  image.
  6311.      The useful range for the PaintJet XL is approximately 0.6 to
  6312.      1.5.
  6313.  
  6314.      The rendering algorithm used for images can be altered  with
  6315.      the  -dither,  -cluster, and -diffuse options. These options
  6316.      select ordered dithering, clustered  ordered  dithering,  or
  6317.      error  diffusion respectively.  The -dark option can be used
  6318.      to enhance images with  a  dark  background  when  they  are
  6319.      reduced  in size.  The -presentation option turns on presen-
  6320.      tation mode, in which two passes are made over the paper  to
  6321.      increase  ink  density.  This should be used only for images
  6322.      where quality is critical.
  6323.  
  6324.  
  6325.      The image can be resized by setting the  -xsize  and  -ysize
  6326.      options.  The parameter to either of these options is inter-
  6327.      preted as the number of dots to set the width or height  to,
  6328.      but  an  optional  dimension  of  `pt' (points), `dp' (deci-
  6329.      points),  `in'  (inches),  or  `cm'  (centimetres)  may   be
  6330.      appended.   If  only  one  dimension is specified, the other
  6331.      will be scaled appropriately.
  6332.  
  6333.      The options -width and -height are synonyms  of  -xsize  and
  6334.      -ysize.
  6335.  
  6336.      The -xscale and -yscale options can alternatively be used to
  6337.      scale the image by a simple factor.
  6338.  
  6339.      The image can be shifted on the page by  using  the  -xshift
  6340.      and  -yshift  options.  These  move  the image the specified
  6341.      dimensions right and down.
  6342.  
  6343.  
  6344. 2 See_Also
  6345.      ppm
  6346.  
  6347. 2 Author
  6348.      Angus Duggan
  6349.  
  6350. 1 libppm
  6351.      libppm - functions to support portable pixmap programs
  6352.  
  6353. 2 Synopsis
  6354.      #include <ppm.h>
  6355.      cc ... libppm.a libpgm.a libpbm.a
  6356.  
  6357.  
  6358. 2 Description
  6359.   TYPES AND CONSTANTS
  6360.      typedef ... pixel;
  6361.      typedef ... pixval;
  6362.      #define PPM_MAXMAXVAL ...
  6363.      extern pixval ppm_pbmmaxval;
  6364.  
  6365.      Each pixel contains three pixvals, each of which should con-
  6366.      tain   only   the   values   between  0  and  PPM_MAXMAXVAL.
  6367.      ppm_pbmmaxval is the maxval used when a PPM program reads  a
  6368.      PBM  file.   Normally it is 1; however, for some programs, a
  6369.      larger value gives better results.
  6370.  
  6371.      #define PPM_FORMAT ...
  6372.      #define RPPM_FORMAT ...
  6373.      #define PPM_TYPE PPM_FORMAT
  6374.      int PPM_FORMAT_TYPE( int format )
  6375.  
  6376.      For distinguishing different file formats and types.
  6377.  
  6378.      pixval PPM_GETR( pixel p )
  6379.      pixval PPM_GETG( pixel p )
  6380.      pixval PPM_GETB( pixel p )
  6381.  
  6382.      These three macros retrieve the red,  green  or  blue  value
  6383.      from the given pixel.
  6384.  
  6385.      void PPM_ASSIGN( pixel p, pixval red, pixval grn, pixval blu )
  6386.  
  6387.      This macro assigns the given red, green and blue  values  to
  6388.      the pixel.
  6389.  
  6390.      int PPM_EQUAL( pixel p, pixel q )
  6391.  
  6392.      This macro checks two pixels for equality.
  6393.  
  6394.      void PPM_DEPTH( pixel newp, pixel p, pixval oldmaxval, pixval newmaxval )
  6395.  
  6396.      This macro scales the colors of pixel p  according  the  old
  6397.      and  new  maximum values and assigns the new values to newp.
  6398.      It is intended to make writing ppmtowhatever easier.
  6399.  
  6400.      float PPM_LUMIN( pixel p )
  6401.      This macro determines the luminance of the pixel p.
  6402.  
  6403.   MEMORY MANAGEMENT
  6404.      pixel** ppm_allocarray( int cols, int rows )
  6405.  
  6406.      Allocate an array of pixels.
  6407.  
  6408.      pixel* ppm_allocrow( int cols )
  6409.  
  6410.      Allocate a row of the given number of pixels.
  6411.  
  6412.      void ppm_freearray( pixel** pixels, int rows )
  6413.  
  6414.      Free the array allocated  with  ppm_allocarray()  containing
  6415.      the given number of rows.
  6416.  
  6417.      void pbm_freerow( pixel* pixelrow )
  6418.  
  6419.      Free a row of pixels.
  6420.  
  6421.   READING PBM FILES
  6422.      void ppm_readppminit( FILE* fp, int* colsP, int* rowsP, pixval* maxvalP, int* formatP )
  6423.  
  6424.      Read the header from a PPM file, filling in the rows,  cols,
  6425.      maxval and format variables.
  6426.  
  6427.      void ppm_readppmrow( FILE* fp, pixel* pixelrow, int cols, pixval maxval, int format )
  6428.  
  6429.      Read a row of pixels into the pixelrow array.  Format, cols,
  6430.      and maxval were filled in by ppm_readppminit().
  6431.  
  6432.      pixel** ppm_readppm( FILE* fp, int* colsP, int* rowsP, pixval* maxvalP )
  6433.  
  6434.      Read an entire pixmap file into memory, returning the  allo-
  6435.      cated  array  and filling in the rows, cols and maxval vari-
  6436.      ables.    This    function    combines    ppm_readppminit(),
  6437.      ppm_allocarray() and ppm_readppmrow().
  6438.  
  6439.   WRITING FILES
  6440.      void ppm_writeppminit( FILE* fp, int cols, int rows, pixval maxval, int forceplain )
  6441.  
  6442.      Write the header for a portable pixmap file.  The forceplain
  6443.      flag forces a plain-format file to be written, as opposed to
  6444.      a raw-format one.
  6445.  
  6446.      void ppm_writeppmrow( FILE* fp, pixel* pixelrow, int cols, pixval maxval, int forceplain )
  6447.  
  6448.      Write a row from a portable pixmap.
  6449.  
  6450.      void ppm_writeppm( FILE* fp, pixel** pixels, int cols, int rows, pixval maxval, int forceplain )
  6451.  
  6452.      Write the header and all data for a portable  pixmap.   This
  6453.      function combines ppm_writeppminit() and ppm_writeppmrow().
  6454.  
  6455.   COLOR NAMES
  6456.      pixel ppm_parsecolor( char* colorname, pixval maxval )
  6457.  
  6458.      Parses an ASCII color name into a pixel.  The color  can  be
  6459.      specified  in  three  ways.  One, as a name, assuming that a
  6460.      pointer to an X11-style color names file  was  compiled  in.
  6461.      Two,  as  an  X11-style  hexadecimal  number: #rgb, #rrggbb,
  6462.      #rrrgggbbb,  or  #rrrrggggbbbb.   Three,  as  a  triplet  of
  6463.      decimal   floating   point   numbers  separated  by  commas:
  6464.      r.r,g.g,b.b.
  6465.  
  6466.      char* ppm_colorname( pixel* colorP, pixval maxval, int hexok )
  6467.  
  6468.      Returns a pointer to a string describing  the  given  color.
  6469.      If  the  X11  color  names  file  is available and the color
  6470.      appears in it, that name is  returned.   Otherwise,  if  the
  6471.      hexok flag is true then a hexadecimal colorspec is returned;
  6472.      if hexok is false and the X11 color names file is available,
  6473.      then the closest matching color is returned; otherwise, it's
  6474.      an error.
  6475.  
  6476. 2 See_Also
  6477.      pbm, pgm
  6478.  
  6479. 2 Author
  6480.      Copyright (C) 1989, 1991 by Tony Hansen and Jef Poskanzer.
  6481.  
  6482. 1 ppm
  6483.      ppm - portable pixmap file format
  6484.  
  6485. 2 Description
  6486.      The portable pixmap format is a  lowest  common  denominator
  6487.      color image file format.  The definition is as follows:
  6488.  
  6489.      - A "magic number" for identifying the  file  type.   A  ppm
  6490.        file's magic number is the two characters "P3".
  6491.  
  6492.      - Whitespace (blanks, TABs, CRs, LFs).
  6493.  
  6494.      - A width, formatted as ASCII characters in decimal.
  6495.  
  6496.      - Whitespace.
  6497.  
  6498.      - A height, again in ASCII decimal.
  6499.  
  6500.      - Whitespace.
  6501.  
  6502.      - The maximum color-component value, again in ASCII decimal.
  6503.  
  6504.      - Whitespace.
  6505.  
  6506.      - Width * height pixels, each  three  ASCII  decimal  values
  6507.        between 0 and the specified maximum value, starting at the
  6508.        top-left  corner  of  the  pixmap,  proceeding  in  normal
  6509.        English  reading  order.   The three values for each pixel
  6510.        represent red, green, and blue, respectively; a value of 0
  6511.        means  that color is off, and the maximum value means that
  6512.        color is maxxed out.
  6513.  
  6514.      - Characters from a "#" to the next end-of-line are  ignored
  6515.        (comments).
  6516.  
  6517.      - No line should be longer than 70 characters.
  6518.  
  6519.      Here is an example of a small pixmap in this format:
  6520.      P3
  6521.      # feep.ppm
  6522.      4 4
  6523.      15
  6524.       0  0  0    0  0  0    0  0  0   15  0 15
  6525.       0  0  0    0 15  7    0  0  0    0  0  0
  6526.       0  0  0    0  0  0    0 15  7    0  0  0
  6527.      15  0 15    0  0  0    0  0  0    0  0  0
  6528.  
  6529.      Programs that read this format should be as lenient as  pos-
  6530.      sible, accepting anything that looks remotely like a pixmap.
  6531.  
  6532.      There is also a variant on the format, available by  setting
  6533.      the  RAWBITS  option  at  compile  time.   This  variant  is
  6534.      different in the following ways:
  6535.  
  6536.      - The "magic number" is "P6" instead of "P3".
  6537.  
  6538.      - The pixel values are stored as  plain  bytes,  instead  of
  6539.        ASCII decimal.
  6540.  
  6541.      - Whitespace is not allowed in the pixels area, and  only  a
  6542.        single  character  of  whitespace (typically a newline) is
  6543.        allowed after the maxval.
  6544.  
  6545.      - The files are smaller and many times faster  to  read  and
  6546.        write.
  6547.  
  6548.      Note that this raw format can only be used for maxvals  less
  6549.      than or equal to 255.  If you use the ppm library and try to
  6550.      write a file with a larger  maxval,  it  will  automatically
  6551.      fall back on the slower but more general plain format.
  6552.  
  6553. 2 See_Also
  6554.      giftopnm, gouldtoppm, ilbmtoppm, imgtoppm, mtvtoppm, pcxtoppm,
  6555.      pgmtoppm, pi1toppm, picttoppm, pjtoppm, qrttoppm, rawtoppm,
  6556.      rgb3toppm, sldtoppm, spctoppm, sputoppm, tgatoppm, ximtoppm,
  6557.      xpmtoppm, yuvtoppm, ppmtoacad, ppmtogif, ppmtoicr, ppmtoilbm,
  6558.      ppmtopcx, ppmtopgm, ppmtopi1, ppmtopict, ppmtopj, ppmtopuzz,
  6559.      ppmtorgb3, ppmtosixel, ppmtotga, ppmtouil, ppmtoxpm, ppmtoyuv,
  6560.      ppmdither, ppmforge, ppmhist, ppmmake, ppmpat, ppmquant,
  6561.      ppmquantall, ppmrelief, pnm, pgm, pbm
  6562.  
  6563. 2 Author
  6564.      Copyright (C) 1989, 1991 by Jef Poskanzer.
  6565.